下面程序的功能是删除字符串s中的空格. #include main() { char *s="Beijing li gong daxue";int i,j;

下面程序的功能是删除字符串s中的空格. #include main() { char *s="Beijing li gong daxue";int i,j;,第1张

其实这程序中定义:char *s="Beijing ligong daxue";是不行的,应该改为char s[]="Beijing ligong daxue";才行啊。

根据程序,【1】处应该填的是( C )。

A. j++=i++ B. i++ C. s[j++]=s[i] D. j=i

根据程序,【2】处应该填的是( C )。 //其实该行纯属多余,应该删去

A. i++ B. j=i C. s[i]=s[i]+1 D. s[j]=s[i]

遍历字符,遇到空格,即进行删除。

可以使用第二个字符数组来保存结果,对空格不复制;也可以不使用第二个字符数组,而是采用后续字符覆盖空格字符的方式,达到删除效果。

以效率更高的第二种方法为例,代码如下:

void del_space(char * s)

{

    char *p = s

    do{

        if(*s != ' ')*p++= *s

    }while(*s++)

}

main()

{ char s[100]={"Our teacher teach C language!"}int i,j

for(i=j=0s[i]!=’\0’i++)//首先用两个下标i和j指向同一数组,i++记录源字符串的遍历位置

if(s[i]!= ' ')//遍历源字符串找出非' '空格字符所在位置,用下标 i 标示,

{s[j]=s[i]j++} //将非' '空格字符拷贝给j指向的位置,j是从头开始重新存放,每拷一个字符j++

s[j]= ‘\0’//直到源字符串查找结束,将重置后的字符串结尾处 j 加一个'\0'以构成一个字符串

printf(“%s\n”,s)

}


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

原文地址: http://outofmemory.cn/yw/12061884.html

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

发表评论

登录后才能评论

评论列表(0条)

保存