| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:[求助]刚学字符串后,出现的问题!!不知道怎么解决了
只看楼主 加入收藏
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
 问题点数:0 回复次数:12 
[求助]刚学字符串后,出现的问题!!不知道怎么解决了

书上有道题目: 编写一个C程序,用于接受用户输入的居住城市,并在城市为“Bei Jing“的时候,显示消息“您来自北京,我也是”,否则显示“我们居住在不同的城市”

题目要求已经完成,问题是,当用户输入bei jing的时候,显示正确,但是输入BEI JING 时候显示错误,我不知道如何去转换大小写。因为用户输入的时候是不区分大小写的。但程序却区分。而且,输入中文又该如何处理呢?希望大家能帮我看一下。谢谢!!

代码帖在下面,写的不好,请提意见谢谢!!


#include<stdio.h>
#include<string.h>
void main()
{
char city[15];

printf("请输入您所在的城市:\t");
gets(city);


if(strcmp(city,"bei jing")==0)
printf("\n您来自北京,我也是!!\n\n");
else
printf("\n我们居住在不同的城市!!\n\n");

}

搜索更多相关主题的帖子: 字符 
2006-09-12 19:53
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
得分:0 
想用  tolower函数 来将用户输入的字符号转变成小写的,但是老出错误,找不到原因,还有,这个函数能定义为char类型吗?
2006-09-12 19:55
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

不用那么麻烦,改判断语句即可

if(strcmp(city,"bei jing")==0||strcmp(city,"BEI JING")==0)


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-09-12 20:07
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
得分:0 
以下是引用unicorn在2006-9-12 20:07:17的发言:

不用那么麻烦,改判断语句即可

if(strcmp(city,"bei jing")==0||strcmp(city,"BEI JING")==0)

如果用户输入的是Bei Jing或者是中文呢??
哈哈,可能是有点较真了。
不过,那个tolower函数应该能用吧,可以将输入的字符串,转换成小写然后做判断就OK了吧

2006-09-12 20:11
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

当然能用吖...
不算叫真儿,做一个软件要考虑到各种情况
bei jing Bei Jing BEI JING BeI jing ....北京
不过那太麻烦了 没有必要的 你只需要把bei jing 和Bei Jing判断为正确就行了(建议你用tolower做下) 至于汉字北京那就是题目的问题了


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-09-12 20:21
cnrainboy
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2006-8-27
收藏
得分:0 
恩,我再用tolower做看看,不过,是否有个类型转换问题呢,书上tolower是int 类型的。
2006-09-12 20:25
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
没有

int 型包含256个ASCII码 无论小写还是大写字母都在这其中

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-09-12 20:27
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 

int tolower(
int c
);

Parameters
c
Character to convert.
Return Value
Each of these routines converts a copy of c, if possible, and returns the result. There is no return value reserved to indicate an error.


2006-09-12 20:27
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

唉 麻烦
用strlwr(city); 得了 呵呵


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-09-12 20:32
ww84020209
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2006-8-21
收藏
得分:0 
自定义一个mystrcmp()即可.

int mystrcmp(char *str1,char *str2)
{
while(*str1!='\0'&&(*str1==*str2)||(*str1>='a'&&*str1<='z'&&*str1==*str2+32)||(*str1>='A'&&*str1<='Z'&&*str1==*str2-32))
{
str1++;
str2++;
}
return *str1-*str2;
}

2006-09-12 20:36
快速回复:[求助]刚学字符串后,出现的问题!!不知道怎么解决了
数据加载中...
 
   



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

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