要求:任意输入一串字符串,指定要删除的位置,并输入要删除指定位置后字符的个数
实现代码如下:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 20//宏定义
#define W 50
int main()
{
char a[N],c[W];
int n,num;
int la,lb,f;
printf("请输入原字符串:");
gets(a);
la=strlen(a);//字符串a的长度,调用函数strlen
printf("请输入要删除的位置:");
scanf("%d",&n);
printf("请输入删除的位数:");
scanf("%d",&num);
for(f=0;f<la;f++) //对原字符串遍历
{
if(f<=(n-1))
c[f]=a[f];
else if(f<la&&f>=(n+num))
c[f-num]=a[f];
}
c[la-num]='\0';//记得最后的一个字符要赋‘\0’,读者可以试一试不赋值的情况
printf("删除后的字符串为%s\n",c);
getch();//使运行框停留
return 0;
}
另一思路:可以将原字符串以删除的指定位置n,n+num为界限拆成三部分,第一部分a[0]-a[n-1];第二部分a[n]-a[n+m-1];第三部分a[n+m]-a[la];通过for循环将第一部分和第三部分分别存入一维数组b[],c[]中,再调用数组连接函数stract(b,c),将b和c两个数组连接在一起。
这是stract函数的具体用法:
字符串连接函数
格式: strcat(字符数组1,字符数组2或字符串常量)
功能:将字符数组2中的字符串连接到字符数组1中的字符串的后面,组成一个新的字符串。
说明:字符串连接函数首先删除第一个 字符串末尾的结束标志'\0',接着将第二个字符串从第一个字符串的“0位置开始连接,形成一个新的字符串,且新的字符串存储在第一个字符串中,保留最后的\0',这样就要求第一个字符数组的长度至少是两个字符串的长度之和。
最后,希望我的分享能给你带来不一样的收获!愿我们一起努力奔跑,砥砺前行!