请教!打印字符串,怎么将本来是小写的字符串打印成全部大写的?
就是上边的问题啦,我只会一个字符一个字符的转换,不知道又没有什么现成的函数或者什么的,可以直接将一个字符串转换成全部大写的。谢谢 问题点数:20、回复次数:6Top
1 楼pyh(天天)回复于 2006-03-05 21:23:35 得分 5
自己写一个不就完了么,还可以满足自己的要求
int ConvertStr(char *str)
{
int len = strlen(str),i;
char c;
for( i=0;i<len;i++)
{
c=*str;
if( c<0x80 ) //ASCII
{
if( c>='a' && c<'=z' )
*str-=0x30; //减的数字不一定对,自己查一下,我记不清楚了
str=1;
}
else //chinese
str+=2;
}
}Top
2 楼pyh(天天)回复于 2006-03-05 21:24:40 得分 1
str=1;
------------
写错了,是str+=1;Top
3 楼alaiyeshi(七宝树八宝饭)回复于 2006-03-06 09:46:53 得分 5
恩
最多一个大小写的转换
不是c有一个
#include<ctype.h>
int toupper(int c);//转换成大写的
int tolower(int c);//转换成小写的Top
4 楼tonyMCM(南京~上海)回复于 2006-03-06 12:12:08 得分 5
原型:extern int toupper(int c);
用法:#include <ctype.h>
功能:将字符c转换为大写英文字母
说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的值。
举例:
// toupper.c
#include <syslib.h>
#include <ctype.h>
main()
{
char *s="Hello, World!";
int i;
clrscr(); // clear screen
printf("%s\n",s);
for(i=0;i<strlen(s);i++)
{
putchar(toupper(s[i]));
}
getchar();
return 0;
}
相关函数:tolower
Top
5 楼qq_310()回复于 2006-03-06 19:45:18 得分 0
没有捷径啊?还得一个一个字符的转?!Top
6 楼alaiyeshi(七宝树八宝饭)回复于 2006-03-07 08:56:18 得分 4
最多是一个遍历
o(n)的时间复杂度
不麻烦
你也可以自己写一个啊Top




