首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求三个字符串的最大者,该怎么解决

2012-02-04 
求三个字符串的最大者书上的程序如下:#include stdio.h#include string.hvoidmain(){charstring[20]c

求三个字符串的最大者
书上的程序如下:

#include <stdio.h>
#include <string.h>
void   main()
{
char   string[20];
char   str[3][20];
int   i;
for(i=0;i <3;i++)
gets(str[i]);
if(strcmp(str[0],str[1])> 0)
strcpy(string,str[10]);
else   strcpy(string,str[1]);
if(strcmp(str[2],string)> 0)
strcpy(string,str[2]);
printf( "\nthe   largest   string   is\n%s\n ",string);
}

疑问:
  1.如果string中先存入str[0]为chinachina,然后再由strcpy(string,str[2])
如果str[2]是:xxxxx这样的结果是不是应该是:xxxxxxchina啊.
  2.如果把前面的str[3][20]定义成str[3][10]呢?
  3.原程序中输入chinachina   CHINA   xxxxx运行出结果是错误的,那是出错了?
  4.我的VC6.0在修改程序的时候,不能中间插入东西了,插一个字符会把后面的一个字符盖掉,想加一行也不能.怎么设置?   我记得已前可以的.

[解决办法]
1.如果string中先存入str[0]为chinachina,然后再由strcpy(string,str[2])
如果str[2]是:xxxxx这样的结果是不是应该是:xxxxxxchina啊.

strcpy 是覆盖性质的,
strcpy(string,str[2])后,
str[2]就是 china 了, 原来的字符串被覆盖了 ······
[解决办法]
1.如果string中先存入str[0]为chinachina,然后再由strcpy(string,str[2])
如果str[2]是:xxxxx这样的结果是不是应该是:xxxxxxchina啊.


我指的是结果是string中的结果,不是str[2]的.
________________________________________________________
结果就是xxxxx 啊。。

2.如果string[20]刚开始没有赋值,它的内容无法预知..如果str[1]只有10位的话,那把str[1]
strcpy到string后,string的后10位应该是乱码??而不是 '\0 '??
————————————————————————————————————
str[1]strcpy到string后,会连同str[1]中的 '\0 '一起strcpy到string里的。printf时到 '\0 '就结束了。。。

热点排行