Arrays 在C中使用char创建一个数组,从用户那里获取两个单词,更改单词的位置,并在最后将它们全部显示在屏幕上

Arrays 在C中使用char创建一个数组,从用户那里获取两个单词,更改单词的位置,并在最后将它们全部显示在屏幕上,arrays,c,string,printf,scanf,Arrays,C,String,Printf,Scanf,预期结果: 输入: 四, 安雅·泰勒 比尔阵营 丹尼斯·刘易斯 摩西·英格拉姆 输出: 泰勒安雅 营地法案 路易斯·丹尼斯 英格拉姆·摩西 我试过很多东西。 虽然有人在互联网上遇到过类似的问题,但我没有遇到过这样的例子 注意:我正在寻找一个解决方案,除了特殊的库和数组函数,使它更容易。 我的想法类似于while(数组[I]!='\0')。我想创建一个新数组,保存并打印出来。但是我没有达到我的想法 #include<stdio.h> int main(void) {

预期结果:

输入: 四,

安雅·泰勒

比尔阵营

丹尼斯·刘易斯

摩西·英格拉姆

输出: 泰勒安雅

营地法案

路易斯·丹尼斯

英格拉姆·摩西

我试过很多东西。 虽然有人在互联网上遇到过类似的问题,但我没有遇到过这样的例子

注意:我正在寻找一个解决方案,除了特殊的库和数组函数,使它更容易。 我的想法类似于while(数组[I]!='\0')。我想创建一个新数组,保存并打印出来。但是我没有达到我的想法

#include<stdio.h>   
int main(void)    
{
    int nbnames=0,i=0;
char Fname[101];
char Lname[101];
scanf("%d",&nbnames);
for(i=0;i<nbnames;i++)
{
    scanf("%s %s",Fname,Lname);
    printf("%s %s\n",Lname,Fname);
}
return 0;
#包括
内部主(空)
{
int nbnames=0,i=0;
char-Fname[101];
字符名称[101];
scanf(“%d”和“&nbname”);

对于(i=0;i这应该很简单。为了方便起见,您可以使用
struct
存储每个人的名字和姓氏-

typedef结构人
{
char first_name[101];
char last_name[101];
}人;
现在,您所要做的就是分配一个
Person
结构数组,大小为
nbnames
(由用户提供),然后简单地按原样扫描名字和姓氏,并将它们存储在数组的每个
Person
结构中

所以整个计划看起来像-

#包括
#包括
typedef结构人
{
char first_name[101];
char last_name[101];
}人;
内部主(空)
{
Person*persons=NULL;
大小和名称;
/*获取要输入的人数*/
如果(scanf(“%u”,&nbnames)!=1)
{
/*scanf无法分析输入-可能不是无符号整数*/
fprintf(stderr,“无效输入”);
返回1;
}
/*为人员数组分配足够的内存*/
人员=malloc(nbnames*sizeof(*人员));
如果(!人)
{
/*分配内存失败*/
fprintf(stderr,“无法为persons数组分配内存\n”);
返回1;
}
/*接受输入*/
对于(大小i=0;i
输出 四,

安雅·泰勒

比尔阵营

丹尼斯·刘易斯

摩西·英格拉姆

泰勒安雅

营地法案

路易斯·丹尼斯

英格拉姆·摩西


嗯?我不知道你是如何从输入示例到输出的。首先我们得到要注册的人数。我们添加记录(姓名),然后在屏幕上打印记录(姓名)