编写程序,从键盘输入一个字符串,并复制到另一个字符数组后显示出来。 (如str1[20], str2[20])。使用strcpy函数与不使用strcpy函数两种方式
时间: 2024-11-22 20:46:03 浏览: 0
当你需要编写程序将用户从键盘输入的字符串复制到字符数组中时,可以使用两种方法:一种是直接手动逐字符赋值,另一种是利用C语言标准库函数`strcpy()`。
**方法一:手动逐字符复制**
```c
#include <stdio.h>
#define SIZE 20
int main() {
char str1[SIZE], str2[SIZE];
// 从键盘输入字符串
printf("请输入一个字符串: ");
fgets(str1, SIZE, stdin); // 使用fgets防止换行符溢出
str1[strcspn(str1, "\n")] = '\0'; // 删除fgets添加的换行符
// 手动复制字符串
for (int i = 0; i < strlen(str1); i++) {
str2[i] = str1[i];
}
str2[strlen(str2)] = '\0'; // 确保str2以空字符结束
// 显示复制后的字符串
printf("复制后的字符串: %s\n", str2);
return 0;
}
```
**方法二:使用strcpy()函数**
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[SIZE], str2[SIZE];
// 输入字符串同上...
// 使用strcpy()函数复制字符串
strcpy(str2, str1);
// 显示复制后的字符串
printf("复制后的字符串: %s\n", str2);
return 0;
}
```
在这两种方法中,`strcpy()`更为简洁,它会直接把源字符串的所有字符复制到目标字符串,而不需要手动遍历。然而,需要注意的是,在使用`strcpy()`时确保目标数组有足够的空间来容纳源字符串(包括终止符'\0'),以免发生缓冲区溢出的问题。
阅读全文