//编写一个fun(str,i,n),从字符串str中删除第i个字符开始的连续的n个字符
#include<stdio.h>
#include<string.h>
#define N 10
void fun(char s[N],int i,int n)
{
strcpy(s+i-1,s+i+n-1);
printf("%s",s);
}
int main()
{
char str[N];
int i,n;
printf("任意输入一个字符串:\n");
scanf("%s",str);
printf("输出你刚才输入的字符串:::\n");
printf("%s\n",str);
printf("请输入你要从什么位置删除这个元素\n");
scanf("%d",&i);
printf("请问您要删除连续多少个字符:\n");
scanf("%d",&n);
fun(str,i,n);
return 0;
}
第二种方法不用系统函数strcpy实现的。
#include<stdio.h>
#include<string.h>
#define N 10
void fun(char s[N],int i,int n)
{
//strcpy(s+i-1,s+i+n-1);换一种方法实现来实现
int j=i-1,k,x=strlen(s);
for(;(j+n<x)&&(j<i+n);j++)
*(s+j)=*(s+j+n);
s[j]='\0';
printf("%s",s);
}
int main()
{
char str[N];
int i,n;
printf("任意输入一个字符串:\n");
scanf("%s",str);
printf("输出你刚才输入的字符串:::\n");
printf("%s\n",str);
printf("请输入你要从什么位置删除这个元素\n");
scanf("%d",&i);
printf("请问您要删除连续多少个字符:\n");
scanf("%d",&n);
fun(str,i,n);
return 0;
}
啊啊啊,最后一种方法好像有点错误。。。求指正!!!!
//编写一个fun(str,i,n),从字符串str中删除第i个字符开始的连续的n个字符
#include<stdio.h>
#include<string.h>
#define N 10
void fun(char s[N],int i,int n)
{
//strcpy(s+i-1,s+i+n-1);换一种方法实现来实现
//把从i-1开始到n+i-2
int j=0,b[N],k=0;
while(s[j]!='\0')
{
if((j>=i-1)&&j<=(i+n-2)&&(i+n)<strlen(s))
{ j++;
continue;
}
else
{
b[k++]=s[j];
j++;
}
}
printf("%s",b);
}
int main()
{
char str[N];
int i,n;
printf("任意输入一个字符串:\n");
scanf("%s",str);
printf("输出你刚才输入的字符串:::\n");
printf("%s\n",str);
printf("请输入你要从什么位置删除这个元素\n");
scanf("%d",&i);
printf("请问您要删除连续多少个字符:\n");
scanf("%d",&n);
fun(str,i,n);
return 0;
}
有点头大,,搞出来的小伙伴记得指正下