C程序 大虾来看看 关于删除字符的
#include<stdio.h> void sc(char n[],int *j) { int i; char t='s'; for(i=0;i<*j;i++) { if(n[i]!=t) { printf("%c",n[i]); } } printf("\n");} void main() { int m,n; n=0; m=0; char s1[]={"sjdfhgysb"}; printf("%s\n",s1); while(s1[n]!='\0') { m++; n++; } sc(s1,&m); }
555
你是要删除字符串中的's'吗?说实话看不太懂你的逻辑,不过看起来下面这句应该是错的 if(t=n[i]) 应改为 if(t == n[i])还有你主函数定义中,{"sjdfhgysb"}已经是9个字符了,再加上字符串结尾的\0应该一共是10个字符,所以定义char s1[]={"sjdfhgysb"};最安全。
答:你的错误就在于没有充分认识到c语言的字符串是以\0为结束符的 你的移动了字符后,没有在新字符传的尾部加上\0, 导致的结果是输出的数据后面出现有重复的字符。 你...详情>>