为了账号安全,请及时绑定邮箱和手机立即绑定

问1道 怎样把小写字母变成 大写字母的,但不能用Strupr,toupper等函数

问1道 怎样把小写字母变成 大写字母的,但不能用Strupr,toupper等函数

C
慕运维0661890 2016-03-28 23:36:12
输入  1行文字列  CYU - yan!!char str【100】 有两个 函数  Upper_String(),Lower_String(),但不能用 Strupr,toupper等函数利用 ASCII码  ‘a’ 97,‘A’ 65,即利用 大小写 32的差 来 编写代码最后输出 的 结果为  Upper_String() :CYU-YAN!!Lower_String(): cyu-yan!!望大神 告知。
查看完整描述

2 回答

?
慕运维0661890

TA贡献1条经验 获得超0个赞

#include <stdio.h>
#include <string.h>
to_Upper_String();
to_Lower_String();
 char lowerStr[100]; 
 char upperStr[100];
 int length,i;
   int main()
{
    char str[100];     
    printf("Input String ?");
    gets(str);
    to_Upper_String(str,upperStr);
    to_Lower_String(str,lowerStr);
    printf("\nto_Upper_String(): %s\n",upperStr);
    printf("\nto_Lower_String(): %s\n",lowerStr);
    return 0;
}
void to_Upper_String(const char *input,char *output)
{   
    length = strlen(input);
    for(i=0;i< length;i++);
    {
        if(input[i] >= 'a' && input[i] <= 'z') 
            output[i] = input[i] - 'a' + 'A';
        else    // 其他的不变 
            output[i] = input[i];
    }
    output[length] = '\0';
}
void to_Lower_String( const char *input, char *output)
{
    length = strlen(input);
    for(i=0;i< length;i++);
    {
        if(input[i] >= 'A' && input[i] <= 'Z')  // 如果是大写字母,则转换为对应的小写字母 
            output[i] = input[i] - 'A' + 'a';
        else  // 其他的不变 
            output[i]=input[i];
    }
    output[length] = '\0';
}

报错 error C2371: “to_Upper_String”: 重定义;不同的基类型    21行  
     error C2371: “to_Lower_String”: 重定义;不同的基类型    33行
     这是  为什么 ????


查看完整回答
反对 回复 2016-03-30
  • guozhchun
    guozhchun
    你函数声明写错了,自然编译错误。把to_Upper_String();to_Lower_String();两行换成: void to_Lower_String( const char *input, char *output); void to_Upper_String(const char *input,char *output); 这样就可以编译成功了。 PS:for(i=0;i< length;i++);在for循环后加“;”还不如不写for循环
  • 2 回答
  • 0 关注
  • 1732 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信