C语言中,如何定义一个字符串数组,并让用户给每个赋值,比如str[0]=abc,str[1]=rt

如题所述

第1个回答  2016-12-19
#include<stdio.h>
#define N 5
void main() { char str[N][20]; int i;
for ( i=0;i<N;i++ ) scanf("%s",str[i]);
for ( i=0;i<N;i++ ) printf("%s\n",str[i]);
}
第2个回答  2016-12-19
试试二维数组追问

具体怎么弄

我想让用户输入职工信息

结果没办法输出这字符数组

追答

有点长,我看看哈

再单独声明一个数组

每次输入先输入到这个数组里

然后存到b数组对应的位置

追问

你是说在循环里面这样循环存吧

那就不用定义二维数组了吧

追答

你这个函数也是有问题的

scanf里边

追问

哪里有问题呢

只能用gets吗

追答

把a b 换成hao ming

scanf应该是一次只读一个吧

用s是读一串,没问题

追问

那就这么写,gets(str);ming[i]=str行不

追答

不行

追问

那该怎么写

追答

把ming[10] 改成 ming[10][*]

*改成信息占用最大字节数

追问

定义也要这么定义吗

追答

比如输入10个字,就改成20+1

追问

我们还没学过

能不能 全部帮我改一下,我好看哪里要修改的(◦˙▽˙◦)

追答

对,你这么定义,只能存10个字符

明天吧

追问

好的

谢谢

哈哈

不用啦

我自己写出来了

成功了

追答

嗯,不错,我刚整出来😜

#include
#include

void px(int *a,char b[][21],int le);
void find(int *a,char b[][21],int le);

int main()
{
int hao[10];
char ming[10][21];
int i,len;
for(i=0;ia[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
strcpy(k,b[j]);
strcpy(b[j],b[j+1]);
strcpy(b[j+1],k);
}
}
}
}

void find(int *a,char b[][21],int le)
{
int low,high,mid,result,n,m;
result=0;
low=0;
high=le-1;
printf("请输入想要查找职工的职工号:");
scanf("%d",&n);
if(n>=0&&na[m])
{
low=m+1;
}
else
{
high=m-1;
}
}

if(result==1)
{
printf("%s\n",b[m]);
return;
}
else if(result==0)
{
printf("查找失败,无此员工号\n");
return;
}
}
else
{
printf("请输入一个非负数!\n");
find(a,b,le);
}

}

追问

好的谢谢😃

但是我新的一个题又有问题了

划拳游戏

显示我一直输

不知道最后一个函数哪里有问题

追答

都有问题

给你重改了

#include
#include
#include
char name[20];
int w=0;
void renwu();
int bs();

int main()
{
renwu();
while(w==0)
{
bs();
bs();
if(w==4)
{
printf("恭喜你战胜了人机,即将开始下一轮!\n");
w=0;
}
else if(w==2)
printf("真TM可惜,你被电脑淘汰了。");
else if(w==3)
{
bs();
if(w>=5)
{
printf("恭喜你战胜了人机,即将开始下一轮!\n");
w=0;
}
else
printf("真TM可惜,你被电脑淘汰了。");
}

}
return 0;
}

void renwu()
{
printf("请输入你的名字:");
scanf("%s",name);
}

int bs()
{
int x,a;
srand(time(0));

printf("轮到你出拳了!1代表石头,2代表剪刀,3代表布!比赛三局!(平局算你赢!):");
scanf("%d",&x);
a=(rand()%3+1);
if(a==1)
{
printf("电脑的出拳为石头!");
printf("\n");
}
else if(a==2)
{
printf("电脑的出拳为剪刀!");
printf("\n");

}
else if(a==3)
{
printf("电脑的出拳为布!");
printf("\n");

}
if(x==1 && a==1)
{
w=w+2;
}
else if(x==1 && a==2)
{
w=w+2;
}
else if(x==1 && a==3)
{
w=w+1;
}
else if(x==2 && a==1)
{
w=w+1;
}
else if(x==2 && a==2)
{
w=w+2;
}
else if(x==2 && a==3)
{
w=w+2;
}
else if(x==3 && a==1)
{
w=w+2;
}
else if(x==3 && a==2)
{
w=w+1;
}
else if(x==3 && a==3)
{
w=w+2;
}

return(w);
}

追问

我这样改的,

成功了

本回答被提问者采纳
相似回答