一个简单的将小写字符串转换成大写的函数
我用的是VC++6.0,恳请大家帮忙看看到底哪里出错了。
#include
void uppers(char *Dest,char *Sour)
{
while(*Sour != '\0')
{
*Dest = *Sour - 32;
Dest++;
Sour++;
}
*Sour = '\0';
}
int main()
{
char *str1 = "abcdefg";
char *str2;
uppers(str2,str1);
printf("%s\n",str2);
return 0;
}
------解决方案--------------------
#include
#include
void uppers(char *Dest,char *Sour)
{
while(*Sour != '\0')
{
*Dest = *Sour - 32;
Dest++;
Sour++;
}
*Dest='\0';
}
int main()
{
char *str1 = "abcdefg";
char *str2=(char*)malloc(sizeof *str2);
uppers(str2,str1);
printf("%s\n",str2);
return 0;
}这样
------解决方案--------------------
#include
void uppers(char *Dest,char *Sour)
{
while(*Sour != '\0')
{
*Dest = *Sour - 32;
Dest++;
Sour++;
}
*Dest = '\0';
}
int main()
{
char str1[8] = "abcdefg";
char arr[8];
char *str2=arr;
uppers(str2,str1);
printf("%s\n",str2);
return 0;
}
你怎么比我还菜啊。
------解决方案--------------------
void uppers(char *Dest,char *Sour)
{
while(*Sour != '\0')
{
*Dest = *Sour - 32;
Dest++;
Sour++;
}
*Dest = '\0';
}
int main()
{
char *str1 = "abcdefg";
char *str2 = (char*)malloc(100);
uppers(str2,str1);
printf("%s\n",str2);
return 0;
}
修改这两处
------解决方案--------------------
注意读写操作要合法,你的大小写转换逻辑也有问题,尽量用库函数。
#include
#include
#include
void uppers(char *d,char const* s)
{
while(*s)
{
*d = toupper(*s);
++s, ++d;
}
*d = 0;
}
int main()
{
char *str1 = "abcdefg7868766jn6566";
char *str2 = (char*)malloc(strlen(str1) + 1);
if(str2)
{
uppers(str2,str1);
printf("%s\n",str2);
free(str2);
}