| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 881 人关注过本帖
标题:关于字符输入问题~
只看楼主 加入收藏
zhuanghu1987
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-10-30
收藏
 问题点数:0 回复次数:13 
关于字符输入问题~
\\求所有输入的字符串中,最长的那个,并输出来
#include "stdio.h"
#include "string.h"
#include "conio.h"
fun(char (*a)[81], int num,char **max)
{ char *p=a[0];int i;
for(i=1;i<num;i++)
if(strlen(a[i])>strlen(p))
p=a[i];
*max=p;
}
main()
{ char ss[5][81],*ps;
int n,i=0;
clrscr();
printf("enter string:\n");
gets(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ss[i]);
}
n=i;
fun(ss,n,&ps);
printf("\nmax=%s\n",ps);
getchar();}
红字的部分,输入****号退出~
不是定义了5个字符串么,为什么我输入了5个字符串之后,它不自动退出来,还可以再住里面输入,并且可以记录,如果说没满足条件的话~
为什么我用一个一维的整型数组,向里面输入数字,当输入到指定的数组长度时,也不满足退出循环的条件,它却自动退出来了~请路过的帮帮忙,它困了我一整天了~我到底是哪错了~谢谢~
搜索更多相关主题的帖子: 字符 include fun 输入 
2007-11-20 09:28
zhuanghu1987
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-10-30
收藏
得分:0 
怎么那么多人来看了就没能帮助我的么~

凤凰涅磐,欲火重生.
2007-11-20 10:25
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

#include <stdio.h>
#include <string.h>


void fun(char (*a)[81], int num, char **max)
{
char *p = a[0];
int i;
for(i = 1; i < num; i++)
if(strlen(a[i]) > strlen(p))
p = a[i];
*max=p;
}

int main(void)
{
char ss[5][81], *ps;
int n, i = 0;

printf("enter string:\n");

do
{
gets(ss[i]);
}while(strcmp(ss[i],"****") && ++i < 5);

fun(ss, i, &ps);
printf("\nmax=%s\n",ps);
getchar();
return 0;
}


[此贴子已经被作者于2007-11-20 11:27:22编辑过]


—>〉Sun〈<—
2007-11-20 10:29
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
收藏
得分:0 
你输入完字符串后再输入4个*号才能退出啊
如:123
4567
12
****

行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2007-11-20 10:34
zhuanghu1987
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-10-30
收藏
得分:0 
我发的程序没问题啊~我就是有些不懂而已~
如一楼~我的问题~

凤凰涅磐,欲火重生.
2007-11-20 10:45
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

gets(ss[i]);
while(!strcmp(ss[i],"****") == 0) /* 没有判断 i 的大小 */
{
i++;
gets(ss[i]);
}

strcmp() :如果2个字符串相等返回 0。
while(strcmp(ss[i],"****")) 这样更直接

[此贴子已经被作者于2007-11-20 11:10:51编辑过]


—>〉Sun〈<—
2007-11-20 10:49
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用zhuanghu1987在2007-11-20 10:45:29的发言:
我发的程序没问题啊~我就是有些不懂而已~
如一楼~我的问题~

你发的程序没问题

晕倒!


—>〉Sun〈<—
2007-11-20 10:58
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ss[i]);
}

// 只有输入不超过 5 行字符串的情况下,这个程序才可以正常运行!

引用搂主的话:
不是定义了5个字符串么,为什么我输入了5个字符串之后,它不自动退出来,还可以再住里面输入,并且可以记录,如果说没满足条件的话~

你没判断i的大小当然不会退出循环。


[此贴子已经被作者于2007-11-20 11:15:38编辑过]


—>〉Sun〈<—
2007-11-20 11:01
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
// 应该这样

do
{
gets(ss[i]);
}while(strcmp(ss[i],"****") && ++i < 5);

—>〉Sun〈<—
2007-11-20 11:13
zhuanghu1987
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-10-30
收藏
得分:0 
还是没说重点,可能是我的语言太差了~没把我要说的表达出来.
感谢cosdos为我解答.
不过这个题目,i只定义到了5,如果输入10个字符串的话,后输入的5个存放在哪了呢.

凤凰涅磐,欲火重生.
2007-11-20 11:16
快速回复:关于字符输入问题~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016891 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved