用C语言如何实现读取一个特定文本,取出每一行第一个特定字符:后的一个字符写到特定文件中

比如读取的文本为cnu:0 1 00:1A 两行 ,要实现取出每行第一个冒号后的一个字符,存放到特定文本
nft : 1 2 33:1B
2.txt .存放格式和内容为 0 如何用C语言实现谢谢!
1

第1个回答  推荐于2016-08-19
int main(int argc, char **argv)
{
FILE *src;
FILE *dst;
char line[512];
char *str;
src = fopen("1.txt", "r");
dst = fopen("2.txt", "w");
if(src == NULL || dst == NULL)
{
return -1;
}

while(fgets(line, 512, src))
{
str = line;
while(*str != ':' && *str != '\0')
{
str ++;
}
if(*str == '\0')
{
continue;
}
str ++;
fprintf(dst, "%c\n", *str);
}

fclose(src);
fclose(dst);

return 0;
}追问

 

大神上面可以用,只是有点小问题,忘补充了要比如第三行取出111,而不是1,要取出:后的一个字符串如何修改程序,谢谢!

追答

int main(int argc, char **argv)
{
FILE *src;
FILE *dst;
char line[512];
char *str;
src = fopen("1.txt", "r");
dst = fopen("2.txt", "w");
if(src == NULL || dst == NULL)
{
return -1;
}

while(fgets(line, 512, src))
{
str = line;
while(*str != ':' && *str != '\0')
{
str ++;
}
if(*str == '\0')
{
continue;
}
str ++;
fprintf(dst, "%s\n", str);
}

fclose(src);
fclose(dst);

return 0;
}

追问

最后后面加了个循环判断空格最后写入空格换行。解决了,还是谢谢你!给了思路

本回答被提问者和网友采纳
相似回答