C语言strtok函数能过滤换行符或者回车符吗

C语言strtok函数能过滤换行符或者回车符吗,第1张

strtok函数能够过滤换行符或者回车符,只要分割字符串delim中包含字符"\n\r"即可。
1、strtok函数:
原型:char strtok(char s[], const char delim);
功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;
说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针;
返回值:从字符串s开头开始的一个个被分割的字符串。分割结束时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点;
2、例程:

#include<stringh>
#include<stdioh>
int main(){
    char input[16]="abc,d,ef,g";//待分解字符串
    char delim=",";//分隔符字符串
    char p=strtok(input,delim);//第一次调用strtok
    while(p!=NULL){//当返回值不为NULL时,继续循环
        printf("%s\n",p);//输出分解的字符串
        p=strtok(NULL,delim);//继续调用strtok,分解剩下的字符串
    }
    return 0;
}

EOF 是文件结束标志,代码是 Ctrl-Z。
fclose() 时会自己添上。
while (!feof(in)) fputc(fgetc(in),out);
改为:
while (1 == 1){
tmp = fgetc(in);
if (!feof(in)) {fputc(tmp,out);}else{break;};
}
判断是否到达EOF应当在读以后
EOF 等于 0xffffffff,上一次没有读入EOF,不说明下一次是否读入EOF。
while (!feof(in)) fputc(fgetc(in),out);
中 feof(in) 测定的是上次读入的是不是EOF,而不是说“下一次不会读入EOF”

word中如何删除回车符和换行符键
用"替换"功能一次删除全文的空行: 点“编辑”->“替换”,在“查找内容”框中输入^p^p,在“替换为”框中输入^p,点“全部替换”。如果有连续的空行,可多点两次“全部替换”按钮。 在日常工作中,我们经常从网上下载一些文字材料,往往因空行多使得页数居高不下。关于“空行替换”的相关文章也看过一些,大致都是这种方法:在“编辑”菜单中打开“查找和替换”对话框,在“查找内容”中输入“^p^p”“替换为”中输入“^p”,然后“全部替换”。 而眼下的一份二级C试卷,用上面的方法却是屡试屡败,每次都是提示:“Word已完成对文档的搜索并已完成0处替换”。为什么空行就在眼前,Word却不认识它呢?经过细心查找,发现在用替换的办法删除空行时要注意两个问题: 1分清文件中用的是手动换行符(“Shift+回车”),还是段落标记 “^p^p”替换成“^p”并不能替换所有的空行。如果文件中用的是手动换行符,那么就要用“^l^l”替换成“^l”(这里用的不是1,而是L字母的小写,也可以直接用替换对话框里的“特殊字符”,里面有“有手动换行符”),空行才能去除。我要用的试卷正是用手动换行符换行的。可是我也用了“^l^l”替换成“^l”的办法,用“全部替换”时依然提示“Word已完成对文档的搜索并已完成0处替换”这又是为什么呢把我搞得一头雾水,为了搞清楚到底问题出在哪里,我又在Word文档中分别用手动换行符和回车符制造一些空行,用“^p^p”替换成“^p”和“^l^l”替换成“^l”来验证,结果能顺利完成空行的删除。为什么我自己输入的可以替换,网上下载的却不能呢难道这里面还有“机关” 2注意空格的存在 无奈之下,我只得手工删除了。在删除的过程中,我发现了它的秘密:原来每个空行的换行符前还有一个空格。空格成了折腾我的“罪魁祸首”!再用“^l ^l”(注意两个换行之间有一个空格)替换成“^l”,替换终于有成果了。单击了几次全部替换,又更改了几次“查找内容”,比如把“^p ^l”替换成“^l,。我的页面中再也没有空行了。 看来用替换的方法来删除空行时,要灵活对待查找的内容,不然,Word可不懂你的心。电脑是智能的也是最“死心眼”的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13358699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存