C++中字符串数组的问题
c++吧
全部回复
仅看楼主
level 11
iFlyCai 楼主
C++数组中如何从键盘上接收字符串数组,是不是要用到结构体?例如:从键盘上接收5个国家的名字?
2012年10月05日 06点10分 1
level 11
循环,用空格隔开[汗]
2012年10月05日 06点10分 2
我的意思是把5个国家的名字存储到一个数组中,不知道是否能实现,个人觉得还需要用结构体,麻烦看一下我提的另一个问题好吧,没有题目,这个问题貌似有点抽象
2012年10月05日 07点10分
回复 acaipiaopiao :不知道说啥了,好好看书吧!
2012年10月05日 07点10分
level 12
std::string myArray[5];
2012年10月06日 08点10分 4
定义一个长度为5的数组,好像只能接受一个字符串长度为5的国家名字。
2012年10月06日 11点10分
题目如下://输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出 思路很清晰,就是不知道如何接收和保存五个国家名字数组
2012年10月06日 11点10分
level 7
额,;路过,顺便看看先
2012年10月06日 13点10分 5
level 11
iFlyCai 楼主
自己写了如下代码:编译没通过,请帮我看一下//输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出
#include <stdio.h>
#include <string.h>
struct counntry
{
char name[15];
}names[5];
void main()
{
char in[10];
int i,j;
printf("please input five country's name:\n");
for(i=0;i<5;i++)
{
printf("please input %d name:\n",i);
gets(names[i].name);
}
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
{
if(strcmp(names[i].name,names[j].name)<=0)
{
in[10]=names[i].name;
names[i].name=names[j].name;
names[j].name=in[10];
}
}
printf("the result of pailie is:\n");
for(i=0;i<5;i++)
{
puts(names[i].name);
}
}

2012年10月07日 01点10分 7
level 1
这是我给你改了之后的代码,你的排序方法不对,我下面用的时候冒泡排序法,你看一下
#include <stdio.h>
#include <string.h>
struct counntry{
char name[15];
}names[5];
void main()
{
char in[15];
printf("please input five country's name:\n");
for(int k=0;k<5;k++)
{
printf("please input %d name:\n",k+1);
gets(names[k].name);
}
for(int i=0;i<=3;i++)
{
for(int j=0;j<=3;j++)
{
if(strcmp(names[j].name,names[j+1].name)>0)
{
strcpy(in,names[j].name);
strcpy(names[j].name,names[j+1].name);
strcpy(names[j+1].name,in);
}
}
}
printf("the result of pailie is:\n");
for(i=0;i<5;i++)
puts(names[i].name);
}
2012年11月30日 11点11分 8
我运行了一下,完全正确,谢谢啊
2012年12月01日 11点12分
1