代码在表面上没有错误
但是你在fun(s1)之后书写了很多空格
导致编码的错误
楼主物圆要注意书写的格式 要美观且符合c语言风格
以下是我优化的结果:
#include<stdio.h>#include<ctype.h>
void fun(char *p)
{
int i=0
while(p[i])
{
if(p[i]==' '&&islower(p[i-1]))
p[i-1]=p[i-1]-'a'+'A'
i++
}
}
int main()
{
char s1[100]="ab cd EFG!"
fun(s1)
printf("%s\n",s1)
return 0
}
************想问的是fun(s1);能生效???
不是只有s1=fun(s1)时才能生效嘛?
楼主可能没理解到自定义函数的返回值的意义
请注意:你自己编写罩陆塌函数fun的返回值类型是void 也就是说不需要返回值
那么这是就不需要用s1=fun(s1) 而且你用了也会错的
运行结果是aB cD EFG!
希望能帮助悉森你哈
答案是B,if( p[i]==’ ’&& islower(p「i-1」租孝坦)) 这句话是句判读句慎早当p[i]为空,且 p[i-1]为小写字母时,弊桐
p[i-1]=p[i-1]-‘a’+‘A’ //这句话使小写变大写。
' '表示空格, &&表示并且的意思
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)