本文主要是介绍编写一个fun(str,i,n),从字符串str中删除第i个字符开始的连续的n个字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//编写一个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-2int 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;
}
有点头大,,搞出来的小伙伴记得指正下
这篇关于编写一个fun(str,i,n),从字符串str中删除第i个字符开始的连续的n个字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!