我必须创建一个程序,将 file1.txt
的内容复制到 file2.txt
,但它不会只是“复制粘贴”file1.txt
到 file2.txt
例如,file1.txt
包含:
Name: Katrina , Age: 19 , Hobbies: Coding
Name: Karl, Age: 21, Hobbies: Guitar
file2.txt
将复制 file1.txt
的内容,但仅限于 Age。所以 file2.txt
将包含:
Name: Katrina, Age: 19
Name: Karl, Age: 21
起初,我的思路是:
将
", Hobbies"
放入字符串统计
file1.txt
中的字符数,直到读到", Hobbies"
(计数器)计数器将每个字符复制 file1.txt 字符,计数次数。
这是我的代码:
FILE *ptr1;
FILE *ptr2;
char c[100];
int count = 1;
char end[100];
char k;
strcpy(end, ", Hobbies");
ptr1= fopen("file1.txt", "r");
ptr2 = fopen("file2.txt", "a");
while((k = fgetc(ptr1) != end)
{
if (k == ' ')
count++;
}
还有其他想法吗?谢谢。
最佳答案
strtok 使用定界符将字符串分成一系列标记。这里可以使用“,”作为分隔符
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp1;
FILE *fp2;
char line[100];
char *token;
const char s[2] = ",";
fp1 = fopen("file1.txt", "r");
fp2 = fopen("file2.txt", "a");
while (fgets(line, sizeof(line), fp1))
{
token = strtok(line,s);
fprintf(fp2,"%s",token);
token = strtok(NULL, s);
fprintf(fp2,"%s\n",token);
}
fclose(fp1);
fclose(fp2);
return 0;
}
关于只复制file1.txt的一部分内容到file2.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732902/