如何把输入的字符串存进数组C语言
时间: 2024-12-19 10:18:57 浏览: 72
在C语言中,将用户输入的字符串存储到字符数组(也称为字符指针数组)中,可以采用以下步骤:
1. **动态内存分配** (如果字符串长度未知):
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc函数
#define MAX_INPUT_LEN 100 // 定义最大输入长度
int main() {
char* input;
printf("请输入一个字符串: ");
fgets(input, MAX_INPUT_LEN, stdin); // fgets读取直到换行符
if (fgets(input, sizeof(input), stdin) != NULL) { // 检查是否成功读取
// 移除末尾的换行符 '\n'
size_t len = strlen(input);
input[len - 1] = '\0'; // 将最后一个字符设为'\0'(结束标志)
} else {
perror("fgets failed");
return 1;
}
// 现在input指向包含了字符串的内存
printf("输入的字符串是: %s\n", input);
free(input); // 释放内存
return 0;
}
```
2. **静态内存分配** (如果字符串长度已知且较小):
```c
#define MAX_INPUT_LEN 5 // 示例中假设字符串长度固定为5
void storeString(char arr[]) {
char input[6]; // 为了包含字符串本身和终止符,需要6个位置
printf("请输入一个字符串: ");
scanf("%s", input); // scanf用于读取字符串直到空格或换行
// 检查输入的字符串是否超过数组大小
if (strlen(input) <= MAX_INPUT_LEN) {
arr[0] = input[0];
for (int i = 1; i < MAX_INPUT_LEN; i++) {
arr[i] = input[i];
}
arr[MAX_INPUT_LEN] = '\0';
} else {
printf("输入的字符串过长,无法存储。\n");
}
}
int main() {
char stringArray[5];
storeString(stringArray);
printf("输入的字符串是: %s\n", stringArray);
return 0;
}
```
在这两个例子中,`"\0"`是一个特殊的字符,表示字符串的结束。
阅读全文
相关推荐















