本文目录一览:
C语言程序 去首尾空格怎么编
可以分别用单循环实现:
#includestdio.h
void work(char s[]) //删除首尾空格
{int i,j;
for(i=0;s[i]==' ';i++); //找到开头第一个非空格
for(j=0;s[i];)s[j++]=s[i++]; //删除开头空格
for(i--;s[i]==' ';i--)s[i]='\0'; //删除末尾空格
}
void main()
{
char s[100]=" Hello! How are you? ";
work(s);
printf("s=\"%s\"\n",s); //输出的串中已经没有首尾空格了
system("pause");
}
C语言编程去掉首尾*的问题,字符中间*不去掉
h是从左至右数第一个不是*的字符,那么a[j]=a[h+j];就是当j==0时把第一个不是*的字符拷贝到a[0],j++;后j成了1,就是把从左数第一个不是*的字符后面的字符(有可能也是*)拷贝到a[1]……就这样一直拷下去,直到j刚好len-h-e是为止——len是整个字符串的长度,h是前面的*的个数,e是后面的*的个数,那么len-h-e就是去掉前后*的字符个数,显然while(jlen-h-e)这个循环就把中间那些字符移到从a[0]开始的最前面了,然后由a[j]=0;在后面添加一个结束符,就完成删除任务了!
C语言怎样从字符串中删除确定头尾字符的字符串?
很简单:字符串以'\0'为结尾,只要执行:a[1]='\0',或者a[1]=0即可。
如果不是删除到末尾,只要把后面的移动到前面来覆盖要删除的部分即可,最后一个是'\0':
比如,要删除上面字符串中"am a"4个字符:
i=2;
do {a[i]=a[i+4];while(i++,a[i+4]);
C语言 不用指针 去除首尾的特殊符号
不用指针也能做到呀?
void trim(char s[],char c)
{
int i=0,j=0;
char t[1001];
while(s[i]==c)i++;
while(t[j]=s[i++])j++;
while(t[--j]==c);
t[++j]='\0';
for(i=0;s[i++]=t[i++];)
}