您的问题是关于如何在 C 中读取多个字符串?
然后可以通过两种方式完成:-
1.通过声明二维字符数组。
//Let say we want 6 strings each of them having max 10 characters.
char set[6][10] ;
for(int i=0;i<6;i++)
scanf("%s",set[i])
2.通过声明一维字符指针数组(注意命名约定),其中每个指针指向一个字符串。
int main(){
int i,numOfStrings;
char temp[30];
printf("Enter Number of strings in set ");
scanf("%d",&numOfStrings);
//Here We have defined array of pointer that will store each string sepratly.
//Arry of pointer to character.
char *setOfStrings[numOfStrings];
for(i=0;i<numOfStrings;i++)
{
printf("Enter string ");
scanf("%s",temp);
setOfStrings[i]= (char*)malloc(sizeof(temp)); //allocted new memory and gave it to array of pointer
strcpy(setOfStrings[i],temp);
}
for(i=0;i<numOfStrings;i++)
{
printf("string = %s \n",setOfStrings[i]);
}
return 0;
}
但这需要理解:
在指针数组的情况下,我们可以用 String 初始化它们,但不能像命令行一样将其作为输入
char *set[2]={"Dinesh","Kandpal"}; //Its valid but you can't do this from command line
为此,我们将动态创建一个空间,将地址存储在一维指针数组中的元素之一中,然后我们扫描的任何值将该内容复制到另一个字符串到我们创建的位置使用 malloc