请大佬帮忙检查下这段代码2!!!
void fun4(char* p4){
int i, j, k=0;
for (i = 0; p4; i++); //i用来计算字符串里的字符个数
for(j=0;p4!='*';j++) p4 = p4;
p4 = '\0';
for (i = 0; i<k; i++)
cout << p4;
}
次代码的目的是消除字符串里所有星星,如****asd***as**变为asdas,可是我为啥运行不出来结果呀?
编译器直接显示按任意键退出程序,明明结果都没显示! 本帖最后由 jackz007 于 2021-3-19 14:57 编辑
这一句要不得
for(j=0;p4!='*';j++) p4 = p4;
它会在 p4 是 '*' 字符时终止循环,如果字符串以 '*' 字符为先导,那么,这个语句就不会对 p4 做出任何改变。
void fun4(char * p4)
{
int i , j ;
for(i = j = 0 ; p4 ; i ++) if(p4 != '*') p4 = p4 ;
p4 = '\0' ;
} jackz007 发表于 2021-3-19 14:52
这一句要不得
它会在 p4 是 '*' 字符时终止循环,如果字符串以 '*' 字符为先导,那 ...
谢谢你,原来我还是语法规则没弄明白。我得回去好好复习一下了。
页:
[1]