在这里插入代码片
输入字符串存在数组char c[30]中,输入m,n,删除下标m开始的n个字符。输出删除后的结果。
#include <stdio.h>
int main()
{
char * c;
gets(c);
int len = 0;
while(*(c+len)) //while循环实现遍历字符串
len++;
int m, n;
scanf("%d%d", &m, &n);
for(int i=0; i<len-n; i++) //达到换数的目的, 将n之后的数移动到前面
*(c+m+i-1) = *(c+n+i);
//将c+m+len-n-2之后的数删除
*(c+m+len-n-1) = '\0';
puts(c);
return 0;
}
本程序在oj平台上运行结果为
生活不易,小刘自闭
希望有人指正
还有一个问题
如何做到忽略空格,空格位置不读取,且不变
刚才有了一点想法但不对,记录如下
#include <stdio.h>
int main()
{
char * c;
gets(c);
int len = 0;
while(*(c+len)) //while循环实现遍历字符串
len++;
int m, n;
scanf("%d%d", &m, &n);
int i, j;
for( i=0, j=0; j<len-n; i++,j++)//达到换数的目的, 将n之后的数移动到前面
{
if(*(c+m+i-1) == ' ') //读到空格往后移动一位
i++;
else
*(c+m+i-1) = *(c+n+j);
}
//将c+m+len-n-2之后的数删除
*(c+m+len-n-1) = '\0';
puts(c);
return 0;
}