首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个容易的将小写字符串转换成大写的函数

2013-03-28 
一个简单的将小写字符串转换成大写的函数我用的是VC++6.0,恳请大家帮忙看看到底哪里出错了。#include stdi

一个简单的将小写字符串转换成大写的函数
我用的是VC++6.0,恳请大家帮忙看看到底哪里出错了。


#include <stdio.h> 
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 <stdio.h>
#include <ctype.h>
#include <stdlib.h>

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);
  }


  return 0;
}

热点排行
Bad Request.