当前位置: 代码迷 >> C语言 >> 字母大小写互相转换 ASCII码转化符号问题
  详细解决方案

字母大小写互相转换 ASCII码转化符号问题

热度:310   发布时间:2007-03-13 20:23:00.0


#include <stdio.h>
void mail()
{
char a,b;
a=getchar();
if(a>='a'&&a<='z')
b=a-32;
printf("\n %c",b);
else
if(a>'A'&&a<'Z')
b=a+32;
printf("\n %c",b);
}

--------------------Configuration: 大小写字母转换 - Win32 Debug--------------------
--------------------Configuration: 大小写字母转换 - Win32 Debug--------------------
Compiling...
大小写字母转换.cpp
C:\Documents and Settings\Administrator\My Documents\作业\大小写字母转换.cpp(9) : error C2181: illegal else without matching if
Error executing cl.exe.

大小写字母转换.exe - 1 error(s), 0 warning(s)


#include <stdio.h>
void mail()
{
char a,b;
char c;
printf("\n请输入一个大写字母:");
a=getchar();
fflush(stdin);
b=a+32; //转换小写
printf("\n //相应小写字母为:");
putchar(b);
b=a-32; //转换大写
printf("\n 相应大写字母为:");
putchar(b);

b=int(a);
if (b>97)
{
c=a-32;
printf("\n字母转换为%c",a);
}
else
{
c=a+32;
printf("\n字母转换为%c",a);
}

putchar('\n');
}

--------------------Configuration: 大小写字母转换 - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/大小写字母转换.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

大小写字母转换.exe - 2 error(s), 0 warning(s)

还是不可以哦??能不能只输入1个任意字母转换为另一大小写形式呢?


----------------解决方案--------------------------------------------------------
1.if else不匹配.
2.应该是b=(int)a;
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
char c;
c=getchar();
if(c>='a'&$&c<='z')
printf("%c",c-32);
else
if(c>='A'&&c<='Z')
printf("%c",c+32);
return 0;
}
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
char a;
int b;
printf("请输入一个字母:");
a=getchar();
fflush(stdin);
b=int(a);
if (b>96)
{
printf("\n字母转换为%c\n",a-32);
}
else
{
printf("\n字母转换为%c\n",a+32);
}
}
好了 谢谢大家
----------------解决方案--------------------------------------------------------
以下是引用cleardark在2007-3-13 19:31:45的发言:

请问在c语言中 字母大小写互相转换怎么编写?
请问为什么

#include <stdio.h>
void main()
{
char a,c;
int b;
printf("请输入一个字母:");
a=getchar();
fflush(stdin);
b=int(a);
if (b>97) /*在ASCII码表中a~z 为97~122,A~Z为65~90 如果取为97的话就要从98开始算起了*/

c=a-32
;/*c的值为改变后的值,而不是a*/
printf("\n字母转换为%c",a);/*输出还是原来a的值为改变后的值,而不是改变后c的值*/
else
c=a+32;/*c的值为改变后的值,而不是a*/
printf("\n字母转换为%c",a);/*输出还是原来a的值为改变后的值,而不是改变后c的值*/
}

提示:--------------------Configuration: 大小写字母转换 - Win32 Debug--------------------
Compiling...
大小写字母转换.cpp
c:\documents and settings\administrator\my documents\作业\大小写字母转换.cpp(13) : error C2181: illegal else without matching if
Error executing cl.exe.

请问正常应该怎样编写呢?

请问在c语言中 ASCII码应该如何为转化符号呢?

请高手予以回答 谢谢


没有注意到“{}”和输出变量改变的问题。。。。。。
谢谢大家的刚忙
小妹初次学习编程 有些误时常会注意不到 请大家多多谅解

[此贴子已经被作者于2007-3-13 23:13:41编辑过]


----------------解决方案--------------------------------------------------------
以下是引用cleardark在2007-3-13 19:31:45的发言:

#include <stdio.h>
void main()
{
char a,c;
int b;
printf("请输入一个字母:");
a=getchar();
fflush(stdin);
b=(int)a;
if (b>=97)
{c=a-32;
printf("\n字母转换为%c",c);
}
else
{c=a+32;
printf("\n字母转换为%c",c);
}
}

[此贴子已经被作者于2007-3-14 13:57:43编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案