53.从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变。如输入“a123BxC”,则输出“A123bXc”

(1)我的错误程序:

#include<iostream>
#include<string.h>
using namespace std;
int ZhuanHuan(char);

int main()
{
    char a[100];
    cout<<"please input a string: "<<endl;
    cin>>a;

    for(int i=0;i<strlen(a);i++)
    {
        ZhuanHuan(a[i]);
    }
    for(int j=0;j<strlen(a);j++)
    {
        cout<<a[j];
    }
    return 0;
}

int ZhuanHuan(char index)
{
    int temp;
    if(index>='a'&&index<='z')
    {
        temp=(int)index;
        temp=index+32;
        index=(char)temp;
    }else if(index>='A'&&index<='Z')
    {
        temp=(int)index;
        index=index-32;
        index=(char)temp;
    }else
    {
        return 0;
    }
}

(2)修改后的程序:

#include<iostream>
#include<string.h>
using namespace std;
void ZhuanHuan(char &); //不需要返回值

int main()
{
    char a[100];
    cout<<"please input a string: "<<endl;
    cin>>a;

    for(int i=0;i<strlen(a);i++)
    {
        ZhuanHuan(a[i]);
    }
    for(int j=0;j<strlen(a);j++)
    {
        cout<<a[j];
    }
    return 0;
}

void ZhuanHuan(char &index) //1.不需要返回值,用void,  2.因为要带回数据,所以要用引用
{
    if(index>='a'&&index<='z')
    {
        index += 'A'-'a' ;
    }else if(index>='A'&&index<='Z')
    {
        index += 'a'-'A' ;
    }
}
原文地址:https://www.cnblogs.com/jixiaowu/p/3901305.html