gpt4 book ai didi

c - 如何将 scanf 中的字符串存储在数组中

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:40 25 4
gpt4 key购买 nike

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(){
char *array[3];
scanf("%s",----); // The input is james.
return 0;
}

如何将 james 存储在数组 [1] 中,将 james 作为输入,使其等效于 array[1] = "james"; ?所以问题是我必须将几个字符串作为输入,然后我想将它存储在一个数组中,这样它就像我所做的那样存储 array[1] = "James";

如果可能,请提供代码。

最佳答案

你可能想要类似这样的东西:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
char array[3][10]; // array of 3 strings of at most 9 chars
scanf("%s", array[0]);
scanf("%s", array[1]);

printf("%s\n%s\n", array[0], array[1]);
return 0;
}

或者通过动态分配内存:

int main() {
char *array[3];

array[0] = (char*)malloc(10); // allocate space for a string of maximum 9 chars
array[1] = (char*)malloc(10); // allocate space for a string of maximum 9 chars

// beware: array[2] has not been initialized here and thus cannot be used

scanf("%s", array[0]);
scanf("%s", array[1]);

printf("%s\n%s\n", array[0], array[1]);
return 0;
}

免责声明:为简洁起见,此处绝对没有进行任何错误检查。如果输入超过 9 个字符的字符串,则该程序的行为将不确定。

预测下一个问题:尽管为 10 个字符保留了空间,但我们只能存储最大长度为 9 个字符的字符串,因为我们需要一个字符作为 NUL 字符串终止符。

关于c - 如何将 scanf 中的字符串存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com