Chinaunix首页 | 论坛 | 博客
  • 博客访问: 160455
  • 博文数量: 83
  • 博客积分: 3956
  • 博客等级: 中校
  • 技术积分: 663
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-24 16:29
文章分类

全部博文(83)

文章存档

2010年(83)

我的朋友

分类: C/C++

2010-10-14 19:39:43

程序如下:

  1 #include
  2 #include
  3
  4 char *upcase(char *inputstring, char *newstring);
  5
  6 int main(void)
  7 {
  8         char str1[4];
  9         upcase("Hello", str1);
 10         printf("str1= %s\n", str1);
 11         return 0;
 12 }
 13
 14 char *upcase(char *inputstring, char *newstring)
 15 {
 16         int counter;
 17         strncpy(newstring, inputstring, sizeof(newstring)-1);
 18         for(counter = 0; counter < strlen(newstring)-1; counter++)
 19         {
 20                 if (newstring[counter] >= 97 && newstring[counter] <= 122)
 21                 {
 22                         newstring[counter] -= 32;
 23                 }
 24                 *(newstring+strlen(newstring)) = 0x00;
 25                 return (char *)newstring;
 26         }
 27 }

在这个程序中,字符串str1和str2的长度故意设置得很小。当实际输入的字符串的长度大于字符串所限制的长度时, 超出的部分将被截取。这一方法虽然可以避免溢出,但会导致数据的丢失,更好的方法是使用动态内存或链表来保存数据。
阅读(534) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~