编写一个函数del_str(char a[ ],char b[ ],int n),实现将指定位置的字符删除

如题所述

#include <stdio.h>
#include <string.h>

void del_str(char a[ ],char b[ ],int n)
{
int j = 0;
int len = strlen(b);
for(int i=0; i<len; i++)
{
if(i != n) //若i不等于要删除位置的下标,则将b中i位置的字符复制到a中
a[j++] = b[i];
else
continue;
}
a[j] = '\0'; //最后加上文件结尾符,a即为删除后的字符串
}

int main()
{
int n;
char str[100], a[100];

printf("输入一串字符串:\n");
gets(str);

printf("请输入要删除字符的位置:\n"); //从1开始
scanf("%d",&n);

del_str(a, str, n-1);
puts(a);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-10
#include<stdio.h>
int del_substr(char *str,char const *substr)
{
int flag=0,n;
char *p=str,*q=(char*)substr,*pp,*qq;
while(*p){
if(*p==*q){
pp=p;qq=q;n=0;
while(*pp&&*qq){
if(*pp!=*qq)
else{
pp++;qq++;n++;
}
}
if(!(*qq)){
pp=p+n;
while(*pp){
*(pp-n)=*pp;
pp++;
}
}
*(pp-n)='\0';
}
p++;
}

return 0;
}
void main()
{
char s[15]="abcdebcfg",t[3]="bc";
del_substr(s,t);
puts(s);

}

相关了解……

你可能感兴趣的内容

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