怎样实现在C语言字符数组中对字符串中的某个字符的删除

如题所述

我举个例子啊:
#include <stdio.h>
#include <string.h>

int main()
{
char a[10] = {"1234567890"};
int i, j;
for(i = 0; i < strlen(a); i++)
{
if(a[i] == '7')
{
for(j = i; j < strlen(a) - 1; j++)
       {
         a[j] = a[j + 1]; 
       }
a[j] = '\0';
break;
}
}
for(i = 0; i < strlen(a); i++)
{
printf("%c ", a[i]);
}
printf("\n");
return 0;
}

//希望楼主能明白啊,我直接在上面敲得代码,不知道能不能编译通过啊,请谅解,没编译器(在网吧)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-11
可以把要删除位置i之后,i+1位置开始的串往前复制一遍。
char t[]="hello world";//必须是非const、可写的空间。
int d=5;//删除第5个位置的空格
strcpy(t+d,t+d+1);
printf("%s",t);
============
helloworld
第2个回答  2011-12-11
从你要删除的那个字符开始,整体向前移。
就可以了追问

怎么移?

追答

如a[4]="abc" b是a[1] 你要删除b 就把a[1]=a[2]; 这个b的内存,就存着c。相当于删除了b

第3个回答  2011-12-11
假设删除字符‘c’
#include<stdio.h>
void main()
{
int k=0;
char a[ ],b[ ],c;
gets(a);
c=‘c’;
for(i=0;i<100;i++)
{
if(a[i]!='\0')
if(a[i]!='c')
{
b[k]=a[i];
k++;
}
}
b[k+1]=‘0’;
}
第4个回答  2011-12-11
貌似没有这样的库函数,只能自己写个函数了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网