在 C 中存储多个字符串
Storing multiple strings In C
C语言如何存储多个字符串?
如果我们考虑从用户那里获取字符串的数量,我们如何将它们保存在c语言中,考虑到我们在询问用户的字符串数量之前没有声明任何字符字符串,因为字符串的数量不是available.here 是我所做的,但我最终打印了字符串的第一个字符。
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
char array[a][1];
for(int i = 0 ; i < a ; i++)
{
for(int j = 0 ; j < 1 ; j++)
{
scanf("%s",&array[i][j]);
}
}
for(int i = 0 ; i < a ; i++)
{
for(int j = 0 ; j < 1 ; j++)
{
printf("%c",array[i][j]);
}
printf("\n");
}
}
让我们从头开始。
我不认为你真的理解什么是 char。 Char 只是一个字符。所以像 char array[16][1]
这样的东西意味着你有 16 个字符串的数组,其中每个字符串的最大长度为 1。你的下一步 scanf("%s", &array[i][j]);
也没有意义,因为你得到了多个符号作为输入,但你只写了一个字符。正确的解决方案应该是这样的:
char array[a][255]; // 255 will be maximum length of one 'string'
for(int i = 0; i < a; ++i) {
scanf("%s", array[i]);
}
如你所见,这里不需要&签名,因为array[i]已经returns字符串中第一个字符的地址。同样的事情也适用于印刷。正确的方法是做以下事情:
for(int i = 0; i < a; ++i) {
printf("%s\n", array[i]);
}
您的解决方案只显示一个字符。
请记住,char 只是基本数字,范围通常为 0-255(如果编译器默认 char 为 unsigned char).您的代码暗示您将 char 视为完整的 C++ 字符串,但它绝对不是。
C语言如何存储多个字符串? 如果我们考虑从用户那里获取字符串的数量,我们如何将它们保存在c语言中,考虑到我们在询问用户的字符串数量之前没有声明任何字符字符串,因为字符串的数量不是available.here 是我所做的,但我最终打印了字符串的第一个字符。
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
char array[a][1];
for(int i = 0 ; i < a ; i++)
{
for(int j = 0 ; j < 1 ; j++)
{
scanf("%s",&array[i][j]);
}
}
for(int i = 0 ; i < a ; i++)
{
for(int j = 0 ; j < 1 ; j++)
{
printf("%c",array[i][j]);
}
printf("\n");
}
}
让我们从头开始。
我不认为你真的理解什么是 char。 Char 只是一个字符。所以像 char array[16][1]
这样的东西意味着你有 16 个字符串的数组,其中每个字符串的最大长度为 1。你的下一步 scanf("%s", &array[i][j]);
也没有意义,因为你得到了多个符号作为输入,但你只写了一个字符。正确的解决方案应该是这样的:
char array[a][255]; // 255 will be maximum length of one 'string'
for(int i = 0; i < a; ++i) {
scanf("%s", array[i]);
}
如你所见,这里不需要&签名,因为array[i]已经returns字符串中第一个字符的地址。同样的事情也适用于印刷。正确的方法是做以下事情:
for(int i = 0; i < a; ++i) {
printf("%s\n", array[i]);
}
您的解决方案只显示一个字符。
请记住,char 只是基本数字,范围通常为 0-255(如果编译器默认 char 为 unsigned char).您的代码暗示您将 char 视为完整的 C++ 字符串,但它绝对不是。