Compare to files,printing the first line where they differ

此博客展示了如何使用C/C++编程语言通过比较两个文本文件的内容来找出它们之间的差异。程序通过逐行读取文件并比较字符,一旦发现不匹配立即停止比较并输出差异。
[code=C/C++]
#include<stdio.h>

# define SIZE 100

int compareTxt(FILE *fp1,FILE *fp2);
void show_file(char *name);

int main()
{
	FILE *fp1 = fopen("txt1.txt","r");
	FILE *fp2 = fopen("txt2.txt","r");
	/*place the pointer to the beginning of the file,which point to the file*/
	rewind(fp1);
	rewind(fp2);
	//show_file("txt2.txt");
	compareTxt(fp1,fp2);
	return 0;
}

int compareTxt(FILE *fp1,FILE *fp2)
{
	char c1,c2;
	char *line = new char[SIZE];
	while(!feof(fp1) && !feof(fp2))
	{
		if((c1=fgetc(fp1)) != (c2 = fgetc(fp2)))
		{
            fgets(line,SIZE,fp1);
			printf("File 1:%c%s\n",c1,line);
			fgets(line,SIZE,fp2);
			printf("File 2:%c%s\n",c2,line);
			break;
		}
	}
	if(c1 == EOF && c2 == EOF)
	{
		printf("Two files are the same.");
		fclose(fp1);
		fclose(fp2);
		return 1;
	}
	else if(c1 != EOF && c2 == EOF)
	{
		fgets(line,SIZE,fp1);
		fclose(fp1);
		fclose(fp2);
		printf("%s \n",line);
		return -1;
	}
	else
	{
		fgets(line,SIZE,fp2);
		fclose(fp1);
		fclose(fp2);
		printf("%s \n",line);
		return -1;
	}
}

void show_file(char *name)
{
	FILE *fp = fopen(name,"r");
	char c;
	while((c = fgetc(fp)) != EOF)
	{
		printf("%c",c);
	}
	fclose(fp);
}
[/code]


A string r consisting only of lowercase Latin letters is called universal if and only if r is lexicographically smaller∗ than the reversal† of r . You are given a string s consisting of n lowercase Latin letters. You are required to make s universal. To achieve this, you can perform the following operation on s at most k times: Choose two indices i and j (1≤i,j≤n ), then swap si and sj . Note that if i=j , you do nothing. Determine whether you can make s universal by performing the above operation at most k times. ∗ A string a is lexicographically smaller than a string b of the same length, if and only if the following holds: in the first position where a and b differ, the string a has a letter that appears earlier in the alphabet than the corresponding letter in b . † The reversal of a string r is the string obtained by writing r from right to left. For example, the reversal of the string abcad is dacba . Input Each test contains multiple test cases. The first line contains the number of test cases t (1≤t≤500 ). The description of the test cases follows. The first line of each test case contains two integers n and k (1≤n≤100 , 0≤k≤104 ) — the length of the string s , and the maximum number of operations you can perform. The second line contains a string s consisting of n lowercase Latin letters. Output For each test case, print "YES" if it is possible to make s universal by performing the operation at most k times. Otherwise, print "NO". You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses. Example InputCopy 8 1 10000 a 3 3 rev 6 0 string 6 0 theory 9 2 universal 19 0 codeforcesecrofedoc 19 1 codeforcesecrofedoc 3 1 zzz OutputCopy NO YES NO YES YES NO YES NO Note In the first test case, s will keep the same after any operations. However, the reversal of a is still a , so it is impossible to make s universal. In the second te c++解法
03-23
帮我翻译下面的注释 Query the given URI, returning a Cursor over the result set with optional support for cancellation. For best performance, the caller should follow these guidelines: Provide an explicit projection, to prevent reading data from storage that aren't going to be used. Use question mark parameter markers such as 'phone=?' instead of explicit values in the selection parameter, so that queries that differ only by those values will be recognized as the same for caching purposes. Params: uri – The URI, using the content:// scheme, for the content to retrieve. projection – A list of which columns to return. Passing null will return all columns, which is inefficient. selection – A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI. selectionArgs – You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings. sortOrder – How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered. cancellationSignal – A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown when the query is executed. Returns: A Cursor object, which is positioned before the first entry. May return null if the underlying content provider returns null, or if it crashes. See Also: Cursor
最新发布
08-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值