键盘输入字符串赋值给数组
时间: 2023-05-20 11:02:06 浏览: 182
可以使用以下代码将键盘输入的字符串赋值给数组:
```
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cout << "请输入字符串:";
getline(cin, input);
char arr[input.size() + 1];
strcpy(arr, input.c_str());
cout << "数组内容为:" << arr << endl;
return 0;
}
```
这段代码使用了 getline() 函数获取键盘输入的字符串,然后使用 strcpy() 函数将字符串复制到字符数组中。注意,字符数组的大小要比字符串长度多 1,因为需要留出一个位置存储字符串的结束符 '\0'。
相关问题
用c语言从键盘输入两个字符串,将长字符串存入s1数组中,将短字符串存入s2数组中
在C语言中,你可以通过循环和字符计数的方式来实现这个功能。首先,你需要定义两个足够大的字符数组`s1`和`s2`来存储输入的字符串。下面是一个简单的步骤:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 定义字符串最大长度
int main() {
char s1[MAX_LEN], s2[MAX_LEN]; // 定义两个字符数组
int len1 = 0, len2 = 0; // 存储每个字符串的长度
printf("请输入第一个字符串:");
fgets(s1, MAX_LEN, stdin); // 使用fgets防止换行符被读取
s1[strlen(s1) - 1] = '\0'; // 去掉可能存在的换行符
printf("请输入第二个字符串:");
fgets(s2, MAX_LEN, stdin);
s2[strlen(s2) - 1] = '\0';
// 检查哪个字符串更长并赋值
if (strlen(s1) > strlen(s2)) {
strcpy(s2, s1); // 将较长的字符串复制到s2
len1 = strlen(s1);
len2 = strlen(s2);
} else {
strcpy(s1, s2); // 将较短的字符串复制到s1
len1 = strlen(s1);
len2 = strlen(s2);
}
// 输出结果
printf("第一个字符串(s1):%s\n", s1);
printf("第二个字符串(s2):%s\n", s2);
可以使用scanf函数将字符串赋值给字符数组吗
当然可以。`scanf`函数非常适合将字符串从标准输入流(通常是键盘)读入,并赋值给字符数组。当你想要读取用户输入的一串字符直到遇到空格或者换行符为止,可以使用 `%s` 格式说明符。例如:
```c
char str[50]; // 假设我们有一个足够大的数组来存储字符串
printf("请输入一个字符串: ");
scanf("%s", str);
```
在这段代码中,`scanf`会读取用户的输入,直到遇到空格或换行,然后将剩余的部分存入`str`数组中。注意,`scanf`不会自动添加终止符(如`\0`),因此如果你不确定用户是否输入了空字符串,你可能需要手动在读取后添加`'\0'`。
然而,为了防止缓冲区溢出的问题,建议在读取字符串前检查`str`的长度,或者使用`fgets`代替`scanf`,因为它能同时读取直到遇到换行符,并自动包含换行符,还可以指定最大字节数,从而更安全。例如:
```c
char str[50];
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // 删除fgets引入的换行符
```
阅读全文
相关推荐










