c语言输入字符串存在数组char c[30]中,输入m,n,删除下标m开始的n个字符。输出删除后的结果。
时间: 2023-06-04 22:06:14 浏览: 52
可以使用C语言中的字符串相关函数来实现该功能,例如strcpy、strcat等。具体实现可以参考以下代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char c[30], result[30];
int m, n;
printf("请输入字符串:");
scanf("%s", c);
printf("请输入删除位置和删除长度(用空格分隔):");
scanf("%d %d", &m, &n);
// 将m+n位置及之后的字符拷贝到新位置
strcpy(result, c);
strcpy(result + m, c + m + n);
printf("删除后的结果是:%s\n", result);
return 0;
}
```
相关问题
用c语言实现代码输入 数字n 一行字符串 数字m,输出从m开始的子串
可以使用C语言中的字符数组和字符串处理函数来实现该功能。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
int n, m;
char str[100];
// 读入数字n和字符串
scanf("%d %s", &n, str);
// 读入数字m
scanf("%d", &m);
// 计算子串起始下标
int start = m - 1;
// 输出子串
printf("%s\n", str + start);
return 0;
}
```
在上面的代码中,首先使用`scanf`函数读入数字n和字符串。然后再读入数字m,计算子串的起始下标,最后使用`printf`函数输出子串。
需要注意的是,由于字符串在C语言中是以字符数组的形式存储的,因此可以使用指针来访问字符串的任意位置。在上面的代码中,使用了`str + start`这样的指针运算来访问子串的起始位置。
c语言编写一个函数,删除字符串s中从下标k开始的n个字符
好的,我可以回答这个问题。你可以使用C语言中的字符串函数来实现这个功能。以下是一个可能的解决方案:
```
void delete_chars(char *s, int k, int n) {
int len = strlen(s);
if (k < 0 || k >= len || n < 1) { // 非法的输入参数
return;
}
int i, j;
for (i = k, j = k + n; i < len && j < len; i++, j++) {
s[i] = s[j];
}
s[i] = '\0';
}
```
这个函数的参数分别是字符串s、开始下标k和要删除的字符数n。首先检查输入参数是否合法,然后使用循环将从下标k到k+n处的字符删除,并将剩下的字符串输出。
请注意,上述函数仅提供参考,仍需实际测试和改进。