C语言 删除字符串中的指定字符'*',要求用指针,谢谢~

作者&投稿:迪义 (若有异议请与网页底部的电邮联系)
C语言 指针 从字符串中删除指定的字符。谁能告诉我下面代码的意思啊~~特别是 *(s++)=*q; *s=0;跪谢了~~~~

void fun(char s[],char c) //s是要操作的字符数组,c是要删除的字符

{
char *q=s; //定义一个char类型的指针(或叫作数组),指向s

for(q=s; *q; q++) //用q编历char类型数组s里的每一个元素

if(*q != c) *(s++)=*q; //如果不是当前的这个字符不是要删除的字符,则插到s的当前位置。否则不加

*s=0; //循环结束后,在s的最后一位加一个结束符
}

/*
你得先搞清指针和数组的关系
*/

#includeint main(){char s[100],*p ,*q ;puts("输入小于100个字符:");gets(s);char del_x;printf("输入要删除的字符:");scanf("%c",&del_x);for(p=s,q=s;*p!='\0';p++) if(*p!=del_x)*q++=*p;*q=*p;puts(s);return 0;}

#include<stdio.h>

intmain()

charstr[100];

char*p,*q;

charc;

gets(str);

c=getchar();

for(p=str,q=str;*p!='\0';p++)//用指针*p去提取str中每一个元素,用指针*q去删除str中需要删除的元素

if(*p!=c)

*(q++)=*p;

*q=*p;

puts(str);

return0;

扩展资料:

其它方法:

#include<stdio.h>

intmain()

charstr[100];

char*q;

charc;

inti;

gets(str);

c=getchar();

for(i=0,q=str;str[i]!='\0';i++)

if(str[i]!=c)

*(q++)=str[i];

*q=str[i];

puts(str);

return0;



#include<stdio.h>

main()

{

 char s[100],*p,*q;

 gets(s);

 for(p=s,q=s;*p!='\0';p++)

   if(*p!='*')*q++=*p;

 *q=*p;

 puts(s);

}





第一步,求字符串中有多少个*,随便求这个字符串的长度
第二步。申请一块空间,大小为:字符串总长度减去*的个数
第三步,
for(i=0;i<total_size;i++)
{
if((string+i)! = ' * ')
{
(new_string+i) = string+i;
}
}


毕节市19384939290: C语言“在字符串中删除指定的字符”?怎么编写程序 -
威纯安得: 从字符数组中删除特定的字符,即输入要删除的指定字符,利用for循环找到非指定字符,将非指定字符输出即可.以下为具体的实现方法: #include<stdio.h> int main() { char str[100],c; int j,k; printf("please input a string:"); gets(str); printf("\...

毕节市19384939290: C语言删除字符串中的指定字符 -
威纯安得: for(j=i;p[j];j++)p[j]=p[j+1]; 后面加上一句 i--;

毕节市19384939290: C语言 - 删除字符串中的字符. -
威纯安得: c语言中书写删除字符串中某个字符的程序的具体操作步骤如下: 1、编写头函数,包括“#include <stdio.h>.”与“#include <string.h>.“. 2、定义两个相同容量的字符串储存的变量 char a【100】; char b【100】.以及整数变量 int c;int i=0,j...

毕节市19384939290: c语言 删除字符串中的一个字符 -
威纯安得: #include "stdio.h" main() {char a[50],ch; int i,j; printf("输入字符串:"); scanf("%s",a); fflush(stdin); printf("输入要删的字符:"); scanf("%c",&ch); for(i=0,j=0;i

毕节市19384939290: C语言 - 删除字符串中指定的字符 -
威纯安得: #includechar fun(char str[20],char ch) { int i,j; for(i=0;str[i]!='\0';i++) if(str[i]==ch) {for(j=i;str[j]!='\0';j++) str[j]=str[j+1]; } } void main() { char str[20],ch; printf("enter a string :"); gets(str); printf("enter you want delete letter : "); ch=getchar(); fun(str,ch); printf("%s",str); }

毕节市19384939290: C语言 删除用户输入的一个字符串中的指定字符 -
威纯安得: 用字符串的替换语句CString str("ok,.dkfjd"); str.Replace("ok",""); 把ok替换为空,即删除指定字符串.函数第一个参数是指定删除字符串,第二个是替换后的字符串

毕节市19384939290: 删除字符串中某个指定字符,用C语言 -
威纯安得: 1 2 3 4 5 6 7 8 9 10 11 12 13 14#include <stdio.h> intmain() { chars[]="abcabcbc"; inti,j; for( i=0,j=0;s[i]!='\0';i++ ) {if( s[i]!='c') //删除串中的c字符s[j++]=s[i] ; } s[j]=0; //字符串结束符 printf("result:%s\n", s ); return0; }

毕节市19384939290: C语言字符串中删除指定字符 -
威纯安得: //在你的原程序上修改,注意加注释的地方 #include#include //这个头文件可以不用了 void deletechar(char *s,char c) //delete是保留字,改名为deletechar {int i,j; for(i=0;s[i]!='\0';) {if(s[i]==c) //只是两个字符的比较,不需要strcmp函数for(j=i;s[j]!='\0';...

毕节市19384939290: C语言编程:删除字符串中指定的字符
威纯安得: #include <stdio.h> #include <string.h> void main() { char s1[100],s2[100]; int i,j,k; char temp; printf("Please input 2 string:\n"); gets(s1); gets(s2); for(i=0;i<strlen(s2);i++) { temp=s2[i]; j=0; while(s1[j]!='\0') { if(s1[j]==temp) { k=j; while(s1[k]!='\0') { s1[k]...

毕节市19384939290: 如何用C语言实现删除字符串中某些特定的字符 -
威纯安得: 如果知道删除内容的话可以用字符串比对函数strstr(),找到以后进行删除

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