C语言中有什么方法能清除一个数组中的全部空格?

C语言中有什么方法能清除一个数组中的全部空格?
比如:char testmac[20];
...
...
strcpy(testmac,"");
.....
最后我想对这个叔祖进行处理,消除所有的空格。

第一种方法:利用指针
#include "stdio.h"
main()
{
char testmac[20],*p; /*定义一个字符数组,一个指向字符变量的指针变量*/
gets(testmac);/*从键盘输入一个字符串*/
for(p=testmac;*p;p++) /*将testmac数组首地址附给p,当p所指字符为‘\0’时,停止循环*/
if(*p==' ')/*判断p所指字符变量是否为空格,若为空格,则以p+1所指地址后面的字符串拷贝到p所指地址,注意''中有个空格,不要以为是连续两个'*/
strcpy(p,p+1);
puts(testmac);
}
运行结果:
输入:“I am a boy!”
输出:“Iamaboy!”
运行解释:当p指向I后面那个空格时,p+1相当于a的地址,strcpy(p,p+1)就是将以p+1的地址为首地址后面那一系列的字符串拷贝到p所指变量的地址为首地址的一系列字符串。从而相当于将空格覆盖掉了

第二种方法:利用另一个数组
#include "stdio.h"
main()
{
char testmac[20],b[20];
int i,j;
j=0;
gets(testmac);
for(i=0;a[i]!='\0';i++)
if(testmac[i]!=' ') /*此处还可以将' '换成32即空格的ASCII码值*/
b[j++]=testmac[i];
b[j]='\0';
strcpy(testmac,b);
puts(testmac);
}
运行解释:就是将testmac数组中不是空格的其他字符都依次放入b数组中,然后用strcpy(testmac,b);将b数组中字符串拷贝到testmac数组。
温馨提示:答案为网友推荐,仅供参考
相似回答