c语言编程实现:输入长度不超过30的字符串、待删除子串的起始位置和长度,从字符串中删除待删除子串,并输出删除后的字符串。 例如:输入abcdefghijklmnopqrstuvwxyz 2 4,输出abghijklmnopqrstuvwxyz。
时间: 2023-06-10 13:08:00 浏览: 283
下面是 C 语言实现的代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 30
int main() {
char str[MAX_LEN+1];
int start, len, i;
printf("请输入一个长度不超过30的字符串:");
scanf("%s", str);
printf("请输入待删除子串的起始位置和长度:");
scanf("%d%d", &start, &len);
// 计算待删除子串的结束位置
int end = start + len - 1;
if (end >= strlen(str)) {
printf("待删除子串越界!\n");
return 1;
}
// 删除子串
for (i = start; i <= end; i++) {
str[i] = str[i+len];
}
str[i] = '\0'; // 添加字符串结尾标志
printf("删除子串后的字符串为:%s\n", str);
return 0;
}
```
这个程序首先读入一个不超过30个字符的字符串,然后读入待删除子串的起始位置和长度。接着,程序计算待删除子串的结束位置,检查是否越界。最后,程序使用循环将待删除子串从字符串中删除,最终输出删除子串后的字符串。
相关问题
输入一个字符串,输出要取得子串。 输入格式: 行1:输入字符串 行2:输入子串起始位置 行3:输入子串结束位置 输出格式: 输出截取子串,如果起始或结束位置不合法,输出没子串!用c语言实现
好的,根据你的要求,我可以为你提供以下 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], sub[100];
int start, end, len, i, j;
printf("请输入字符串:\n");
fgets(str, sizeof(str), stdin);
printf("请输入子串的起始位置和结束位置:\n");
scanf("%d%d", &start, &end);
len = strlen(str);
if (start < 0 || start >= len || end < 0 || end >= len || start > end) {
printf("没有子串!\n");
} else {
for (i = start, j = 0; i <= end; i++, j++) {
sub[j] = str[i];
}
sub[j] = '\0';
printf("截取的子串为:%s\n", sub);
}
return 0;
}
```
这段代码首先让用户输入一个字符串,然后让用户输入起始位置和结束位置,然后根据起始位置和结束位置截取子串并输出。如果起始位置和结束位置不合法,即小于0或大于等于字符串长度或起始位置大于结束位置,就输出“没有子串!”提示。
通过编程删除字符串中指定位置上指定长度的子串。从键盘输入一个字符串,输入要删除的字符串起始位置及长度,然后输出删除后的字符串。c语言代码
下面是一个简单的 C 语言程序,可以实现删除字符串中指定位置上指定长度的子串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], new_str[100];
int start, len, i, j;
// 读取字符串和要删除的子串的起始位置及长度
printf("请输入一个字符串:\n");
gets(str);
printf("请输入要删除的子串的起始位置和长度:\n");
scanf("%d %d", &start, &len);
// 复制字符串
for (i = 0; i < start; i++) {
new_str[i] = str[i];
}
// 删除指定位置上指定长度的子串
for (j = 0; j < strlen(str) - start - len + 1; j++) {
new_str[i + j] = str[i + j + len];
}
// 输出新字符串
printf("删除后的字符串:%s\n", new_str);
return 0;
}
```
注意,这里使用了 `gets()` 函数来读取输入的字符串,但是这个函数已经被标记为弃用,不推荐使用。应该使用更安全的 `fgets()` 函数代替。
阅读全文