
C语言删除字符串中指定字符
编程实现:从键盘输入一个字符串及一个待删除字符,将该字符串中的所有待删除字符删掉(删除时不区分大小写),要求:(1)在main函数中输入字符串及待删除字符(2)在自定义函...
编程实现:从键盘输入一个字符串及一个待删除字符,将该字符串中的所有待删除字符删掉(删除时不区分大小写),要求:
(1)在main函数中输入字符串及待删除字符
(2)在自定义函数中实现删除字符的功能
(3)在main函数中输出删除后的结果
#include<stdio.h>
#include<string.h>
void delete(char *s,char c)
{int i,j;
for(i=0;s[i]!='\0';)
{if(strcmp(s[i],c)==0)
for(j=i;s[j]!='\0';j++)
s[j]=s[j+1];
else i++; }
return;}
void main()
{char s[80];
char c;
gets(s);
getchar();
c=getchar();
delete(s,c);
puts(s);}
请问有什么错误吗,为什么每次程序一运行。输入abc回车再输入a再回车(也就是从abc中删除a)程序总是崩溃呢? 展开
(1)在main函数中输入字符串及待删除字符
(2)在自定义函数中实现删除字符的功能
(3)在main函数中输出删除后的结果
#include<stdio.h>
#include<string.h>
void delete(char *s,char c)
{int i,j;
for(i=0;s[i]!='\0';)
{if(strcmp(s[i],c)==0)
for(j=i;s[j]!='\0';j++)
s[j]=s[j+1];
else i++; }
return;}
void main()
{char s[80];
char c;
gets(s);
getchar();
c=getchar();
delete(s,c);
puts(s);}
请问有什么错误吗,为什么每次程序一运行。输入abc回车再输入a再回车(也就是从abc中删除a)程序总是崩溃呢? 展开
展开全部
想了一个比较简单的方法,程序也简单,要多看,多想想为什么,认真把课本的例题消化了,就发现很简单的啦!少年,要加油哦!!!
#include<stdio.h>
void main()
{
char *p;
char strings[100];
gets(strings);
for(p = strings; (*p)!='\0'&&(*p)!='?';p++)
;
(*p) = '\0';
putchar('\n');
puts(strings);
}
#include<stdio.h>
void main()
{
char *p;
char strings[100];
gets(strings);
for(p = strings; (*p)!='\0'&&(*p)!='?';p++)
;
(*p) = '\0';
putchar('\n');
puts(strings);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-05-17
展开全部
#include"stdio.h"#include"string.h"voidmain(){charstr[500];inti;printf("请输入字符串:\n");gets(str);for(i=0;i='0'&&str[i]<='9'))continue;elseprintf("%c",str[i]);}printf("\n");}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(s2[j]!=s1[i])
{
a[k]=s1[i];
k++;
}
问题在于这个循环,
如果s2[0]等于了,就会判断s2[1],一直比对,如果直到s2[]结束全都相等,那恭喜你蒙对了。。。
其中有一个不相等,你就丢掉了s2[0]~s2[j-1]这之间的数据了,所以必须加一个处理:
if(s2[j]!=s1[i])
{
a[k]=s1[i];
k++;
}
else
{
// 懒得写了,就是把s2[0]~s2[j-1]赋值给a[]
}
{
a[k]=s1[i];
k++;
}
问题在于这个循环,
如果s2[0]等于了,就会判断s2[1],一直比对,如果直到s2[]结束全都相等,那恭喜你蒙对了。。。
其中有一个不相等,你就丢掉了s2[0]~s2[j-1]这之间的数据了,所以必须加一个处理:
if(s2[j]!=s1[i])
{
a[k]=s1[i];
k++;
}
else
{
// 懒得写了,就是把s2[0]~s2[j-1]赋值给a[]
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun(char a[],char b[],int n)
{
int i,j=0;
for(i=0;i<n;i++,j++)
b[i]=a[j];
j++;
for(i=n;i<LEN;i++)
{
b[i]=a[j];
j++;
}
b[i]='\0';
}
{
int i,j=0;
for(i=0;i<n;i++,j++)
b[i]=a[j];
j++;
for(i=n;i<LEN;i++)
{
b[i]=a[j];
j++;
}
b[i]='\0';
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void delchar(char *s,char c)
{
int i;
i=0;
while(s[i]!='\0')
if(s[i]==c)
s[i]=0;
i++;
}
改为
void delchar(char *s,char c)
{
int i,j;
char tmp_str[1024] = 0;
i=0;
j=0;
while(s[i]!='\0')
{
if(s[i] != 'c')
{
tmp_str[j];
j++;
}
i++;
}
strcpy(s,tmp_str);
}
{
int i;
i=0;
while(s[i]!='\0')
if(s[i]==c)
s[i]=0;
i++;
}
改为
void delchar(char *s,char c)
{
int i,j;
char tmp_str[1024] = 0;
i=0;
j=0;
while(s[i]!='\0')
{
if(s[i] != 'c')
{
tmp_str[j];
j++;
}
i++;
}
strcpy(s,tmp_str);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询