| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:字符串插入问题
只看楼主 加入收藏
xishui777
Rank: 2
等 级:论坛游民
帖 子:53
专家分:94
注 册:2010-8-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
字符串插入问题
#include<iostream>
using namespace std;
void qaz(char *a,char *b)
{
    int i,j,k,n;
    char max=a[0];
    for(i=0;i<strlen(a);i++)
        if(max<a[i])
        {
            max=a[i];
            n=i;
        }
    for(j=strlen(b)-1;j>=0;j--)
    {
        for(k=strlen(a)+1;k>n+1;k--)
            a[k]=a[k-1];
        a[n+1]=b[j];
    }
}
int main()
{
    char a[100],b[50];
    cout<<"本程序是在a串最大字符后面插入b串"<<endl<<endl;
    cout<<"输入a串:";
    cin.getline(a,sizeof(a));
    cout<<"输入b串:";
    cin.getline(b,sizeof(b));
    qaz(a,b);
    cout<<endl<<"插入后"<<endl;
    cout<<"刷新a串:"<<a<<endl;
    cout<<"刷新b串: "<<b<<endl;
    system("pause");
    return 0;
}
当我输入a串:aaazxxx
b串:bbb
运行都很正常
当我输入a串:ni hao ma?
b串:ni hao
运行时程序崩溃
这是为什么?
搜索更多相关主题的帖子: 字符串 
2011-01-03 18:42
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:5 
估计是第二个字符串有空格的原因吧。
把cin.getline()改成gets()试试.

   唯实惟新 至诚致志
2011-01-03 21:51
kspliusa
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:98
专家分:178
注 册:2009-9-27
收藏
得分:5 
程序代码:
 for(j=strlen(b)-1;j>=0;j--)
    {
        for(k=strlen(a)+1;k>n+1;k--)
            a[k]=a[k-1];
        a[n+1]=b[j];
    }
这里写的有问题吧,  a[n+1]=b[j];这句中n就没变过啊!
2011-01-03 23:37
快速回复:字符串插入问题
数据加载中...
 
   



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

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