C语言用户自主输入有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。 不使用函数,使用指针
时间: 2024-11-22 10:25:12 浏览: 0
在C语言中,你可以通过指针操作直接完成这个任务,这里有一个简单的例子,它不涉及函数,仅使用指针和基本的数据结构操作:
```c
#include <stdio.h>
#include <string.h> // 需要包括strncpy用于安全的字符复制
void copy_chars(char* source, char* dest, int m, int n) {
if (m <= 0 || m > n || n <= 0) {
printf("Invalid input: m must be between 1 and n (inclusive) and n must be positive.\n");
return;
}
char temp[1]; // 创建临时缓冲区,用于存储源串的一部分
strncpy(temp, &source[m - 1], n); // 注意减1,因为数组索引从0开始
// 将临时缓冲区的内容复制到目标字符串
memmove(dest, temp, strlen(temp)); // 使用memmove防止覆盖源串
}
int main() {
char source[100];
printf("Enter a string with %d characters: ", sizeof(source));
fgets(source, sizeof(source), stdin);
char destination[100];
printf("Enter the starting position (m): ");
int m;
scanf("%d", &m);
printf("Enter the number of characters to copy (n): ");
int n;
scanf("%d", &n);
// 跳过fgets读取的换行符
source[strlen(source) - 1] = '\0';
copy_chars(source, destination, m, n);
printf("The copied substring is: %s\n", destination);
return 0;
}
阅读全文