优艾设计网

c语言字符数组中删除一个字符?

优艾设计网 https://www.uibq.com 2022-12-29 07:47 出处:网络 作者:在线设计
输入十个字符,再删除其中与我输入那个字符相同的的字符,不知道为什么我写的这个一直就是删除最后一个字符,求大神看下 #include <stdio.h> int main( void ) { intn, j; chari[10]; charc; for ( n = 0; n &

输入十个字符,再删除其中与我输入那个字符相同的的字符,不知道为什么我写的这个一直就是删除最后一个字符,求大神看下

#include <stdio.h> int main( void ) { intn, j; chari[10]; charc; for ( n = 0; n < 10; n++ ) scanf( "%c", &i[n] ); scanf( "%c", &c ); for ( n = 0; n < 10; n++ ) { if ( i[n] == c ) { i[n] = i[n + 1]; for ( j = n + 1; j < 10; j++ ) { i[j] = i[j + 1]; } } } for ( n = 0; n < 9; n++ ) printf( "%c优艾设计网_PS交流", i[n] ); return(0); }


请赐用户名 优艾设计网_设计 10小时前

调试一下就可以发现错误了。scanf( "%c", &c );这里出现了问题。


折翼飞坐看云海把昨日还给我前世 优艾设计网_平面设计 10小时前

你程序本身没有什么问题,问题就可能在于你的输入这11个字母的方式,你必须这样输入:11个字符连续输入,然后enter键,这样才能保证你程序没问题。其实主要原因是:你连续使用scanf接受输入,如果中间你加入回车,空格,逗号等分割字符的输入都会被当作输入接受的,导致你达不到预期的结果,而且它只接受11个字符例如你这样输入: a回车b回车c回车d回车e回车f回车。。。。。其实你数字接受了abcde5个字符和5个回车已经结束,而且你c接受的是一个回车如果你想要这么输入的话,必须使用一个抵消回车的方法,例如在scanf后面加入一个fgetc接受回车,其他方法有很多,你可以网上查一下


0

精彩评论

暂无评论...
验证码 换一张
取 消