| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 347 人关注过本帖
标题:字符串溢出
只看楼主 加入收藏
求智者
Rank: 2
等 级:论坛游民
帖 子:39
专家分:32
注 册:2012-2-14
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:4 
字符串溢出
字符串在什么情况下会溢出希望大家举些列子
搜索更多相关主题的帖子: 字符串 
2012-03-01 14:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
看《西遊記》三打白骨精段,什麼叫“畫地為牢”,圈子(範圍)是劃好了,但你非要出去,那事實上也攔不住。這樣就知道什麼會溢出了。

授人以渔,不授人以鱼。
2012-03-01 14:26
求智者
Rank: 2
等 级:论坛游民
帖 子:39
专家分:32
注 册:2012-2-14
收藏
得分:0 
用户输入一串字符串(假定字符串大小不大于200位)
当用户输入:hao do      you     do   99abc
输出为:Hao Do You Do 99_abc
当用户输入: hello     world   993kk
输出为:Hello World 993_kk
中间的有多个空格的用一个空格代替,首字母大写,数字和字母之间用”_”隔开




#include<stdio.h>
void jieguo(char *a);
void main()
{
    int i;
    char a[400];
    gets(a);
    jieguo(a);
}
void jieguo(char *a)
{
   
    int i=0,j,k,n=0;
    if(a[0]<='z'&&a[0]>='a')
            a[0]-=32;
    for(i=0;a[i];i++)
    {
        
      if(a[i]==' ')
      {
          n=0;
          //printf("s");
        for(j=i+1;a[j];j++)
        {
            n++;
         if(a[j]!=' ')
         {
             if(a[j]>='a'&&a[j]<='z')
             a[j]-=32;
            
            for(k=j;a[k];k++)
            {
             a[i+1]=a[k];
             i++;
            }
            i=j;
             break;
         }
         
      }
        for(j=k-n;j<=k;j++)
        {
             k=k-n;
           a[k+1]='\0';
        }
      }
    }
    //printf("ss");
   
    for(j=0;a[j];j++);
    int x,z=0;
    for(x=0;a[x-7];x++)//这里为什么会溢出如何解决
    {
        z++;
        //if(a[x])
        
    //    printf("%c",a[x]);
       if(a[x]>='a'&&a[x]<='z'&&a[x+1]>='0'&&a[x+1]<='9'||a[x+1]>='a'&&a[x+1]<='z'&&a[x]>='0'&&a[x]<='9')
           
           {
                for(k=j-1;k>=x+1;k--)
                {
                //    printf("s");
                    a[k+1]=a[k];
                }
            a[x+1]='-';
            j++;
           }
      
    }
    //printf("\n");
    printf("%d\n",z);
    puts(a);
}
2012-03-01 14:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
int x,z=0;
     for(x=0;a[x-7];x++)//这里为什么会溢出如何解决

for()循環每次都要判斷終止條件a[x-7],而你的x=0,那麼a[x-7]在哪裡?

授人以渔,不授人以鱼。
2012-03-01 14:40
求智者
Rank: 2
等 级:论坛游民
帖 子:39
专家分:32
注 册:2012-2-14
收藏
得分:0 
for(x=0;a[x];x++)是这个
2012-03-02 09:23
快速回复:字符串溢出
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020550 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved