二级题里关于sizeof和strupr的一些疑问?
请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母则不转换。)#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/* void fun(char *ss)
{
int i;
for(i=0;ss[i]!='\0';i++) //将ss所指字符串中所有下标为奇数位置的字母转换为大写
if(i%2==1&&ss[i]>='a'&&ss[i]<='z')
ss[i]=ss[i]-32;
}
//这个斜杠里面是正确答案,下面的是我写的。
*/
void fun(char *ss)
{
int i;
for(i=0;ss[i]!=0;i++)
{if(i%2==1&&sizeof(ss[i])==1) //这里用sizeof能区分int和char吗?
ss[i]=strupr(ss);} //这里用strupr能将指定位置的小写字母改成大写吗?
}
void main()
{
char tt[81],s[81]="abc4Efg";
printf("\nPlease enter an string within 80 characters:\n");
gets(tt);
printf("\n\nAfter changing, the string\n %s",tt);
fun(tt);
printf("\nbecomes\n %s\n",tt);
}