| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 955 人关注过本帖
标题:求解!大小写转换问题~
取消只看楼主 加入收藏
newproblem
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-11-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求解!大小写转换问题~
#include <stdio.h>
int main(int argc, char *argv[])
{
    char a[80];int i;
    scanf("%s",a);
    for(i=0;a[i];i++)
    {
        if(a[i]>='A'&&a[i]<='Z')
            a[i]+=32;
        else if(a[i]>='a'&&a<='z')
            a[i]-=32;
        printf("%c",a[i]);
    }
    return 0;
}
为什么运行时只能把大写转化为小写,而小写无法转化为大写?求教~
搜索更多相关主题的帖子: include 
2011-11-21 00:36
newproblem
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-11-21
收藏
得分:0 
以下是引用Firewall1076在2011-11-21 01:18:12的发言:

scanf语句用错了哦,少了&
a是数组名啊,C中数组名代表该数组的起始地址,所以不用加&的啊……
2011-11-21 12:18
newproblem
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-11-21
收藏
得分:0 
以下是引用TonyDeng在2011-11-21 02:46:18的发言:

/*----------------------------
    解决:英文字母大小写转换问题
    备注:由于现代计算机环境国际化,编写程序不能再依赖于传统的ASCII内码方式
编程环境:VS2010 C++, .NET4, 采用安全函数
-----------------------------*/
 
#include  
#include  
#include  
 
// 函数原型
const char Convert_Letter(const char character);
const char* Convert_String(char* Str);
 
// 程序主入口
void main(void)
{
    char str[1024] = {'\0'};
 
    do
    {
        printf_s("请输入字符串(Enter):");
        gets_s(str, _countof(str));
        if (strlen(str) > 0)
        {
            printf_s("转换后的字符串:%s\n\n", Convert_String(str));
        }
    } while (strlen(str) > 0);
}
 
// 字符串大小写转换函数
const char* Convert_String(char* str)
{
    char* p = str;
    while (*p)
    {
        *p = Convert_Letter(*p);
        ++p;
    }
 
    return str;
}
 
// 字母大小写转换函数
const char Convert_Letter(const char character)
{
    // 不希望存在全局数据的话,在这里定义静态数据进行封装,C模拟C++做法
    static const char LetterTable[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    static const size_t LetterNumber = 26;
 
    char ch = character;                    // 如果character不属于字母表中字符则将原样返回
 
    if (const char* p = strchr(LetterTable, character))
    {
        if (p - LetterTable < LetterNumber - 1)
        {
            ch = *(p + LetterNumber);        // 小写字母转为大写
        }
        else
        {
            ch = *(p - LetterNumber);        // 大写字母转为小写
        }
    }
 
    return ch;
}
这个……看不懂的说,我们刚学C程学到数组……能不能帮我找下,我哪里做错了?
2011-11-21 12:27
newproblem
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-11-21
收藏
得分:0 
感谢楼上两位
2011-11-21 12:50
快速回复:求解!大小写转换问题~
数据加载中...
 
   



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

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