c语言 输入一个字符串,输入两个整数m,n,输出从下标m开始的n个字符组成的新字符串(用指针实现) 输入:a abcdefg 3 2 输出:de
时间: 2024-11-15 07:27:49 浏览: 24
在 C 语言中,你可以通过使用指针和数组来实现这个功能。首先,你需要接收用户输入的字符串、起始索引 `m` 和长度 `n`,然后创建一个新的字符串变量存储结果。下面是一个简单的程序示例:
```c
#include <stdio.h>
#include <string.h>
void print_substring(char* str, int m, int n) {
if (m >= 0 && m < strlen(str) && n > 0) {
char* new_str = (char*)malloc(n * sizeof(char)); // 为新字符串分配内存
if (new_str != NULL) { // 检查是否成功分配内存
strncpy(new_str, &str[m], n); // 将指定范围的字符复制到新字符串
new_str[n - 1] = '\0'; // 结束符添加到新字符串的末尾
printf("Output: %s\n", new_str); // 输出结果
free(new_str); // 释放新字符串的内存
} else {
printf("Memory allocation failed.\n");
}
} else {
printf("Invalid input for m or n.\n");
}
}
int main() {
char str[100];
int m, n;
printf("Enter a string: ");
fgets(str, sizeof(str), stdin); // 接收字符串
str[strcspn(str, "\n")] = '\0'; // 去除换行符
printf("Enter m and n: ");
scanf("%d %d", &m, &n);
print_substring(str, m, n);
return 0;
}
```
当你运行这个程序并按照提示输入 "a abcdefg" 和 "3 2" 时,它会输出 "de"。
阅读全文