字符指针问题

[复制链接]
1329|3
 楼主| baidudz 发表于 2013-10-30 18:48 | 显示全部楼层 |阅读模式
c++里,使用 char * pOutputstr,对其赋值后出现乱码,代码如下:
#include <iostream>

using namespace std;

void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)
{
    int  count=1;
    int order=0;
    for(int i=0;i<lInputLen-1;i++)
    {
        char a=pInputStr[i];
        char b=pInputStr[i+1];
        if(a==b)
        {
            count++;
        }
        else
        {
            
                 
            pOutputStr[order++]=count;//此处赋值出现乱码
            //cout<<count;
            pOutputStr[order++]=a;
            //cout<<a;

            count=1;
        }
         
         
    }
    pOutputStr[order++]=count;
    pOutputStr[order++]=pInputStr[strlen(pInputStr)-1];
}
int main()
{
    char strings[100];
    cout<<"Input your string:"<<endl;
    cin>>strings;

    stringZip(strings,strlen(strings),strings);
    cout<<strings<<endl;

    char keep=' ';
    cin>>keep;
}
望各位好友帮忙看看,错在哪了
火箭球迷 发表于 2013-10-30 19:02 | 显示全部楼层
1,pOutputStr[order++]=count;//此处赋值出现乱码
>>pOutputStr[order++]=count+'0';

2,pOutputStr[order++]=count;同样加‘0’
3, pOutputStr[order++]=count;
    pOutputStr[order++]=pInputStr[strlen(pInputStr)-1];
>>添加一句 pOutputStr[order++]=‘\0’
4,stringZip(strings,strlen(strings),strings);输出另建个空间
hsbjb 发表于 2013-10-30 19:15 | 显示全部楼层
in和out不能共用一个buffer,数字显示需要加上'0',字符串需要以'\0'结尾
无冕之王 发表于 2013-10-30 19:28 | 显示全部楼层
应该是LS分析的原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

2284

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部