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

求高手来看看并指出异常~

2012-05-09 
求高手来看看并指出错误~~~~~~~~~~~~~~#include iostreamusingnamespacestdcharstr(chara[],charb[]){c

求高手来看看并指出错误~~~~~~~~~~~~~~
#include <iostream>
using   namespace   std;
char   str(char   a[],char   b[])
{
char*p=a;
char*q=b;
int   i=0,j=0;
while(*(p+i)!= '\0 '&&*(q+j)!= '\0 ')
{
if(*(p+i) <=*(q+j))
{
cout < <*(p+i);
i++;
}
else
{
cout < <*(q+j);
j++;
}
}
if(*(p+i)== '\0 '&&*(q+j)!= '\0 ')
{
for(;j <10;j++)
{
cout < <*(q+j);
}
}
else   if(*(p+i)!= '\0 '&&*(q+j)== '\0 ')
{
for(;i <10;i++)
{
cout < <*(p+i);
}
}
cout < <endl;
return   0;
}
int   main()
{
char   a[10],b[10];
cout < < "请输入第一个字符串: ";
for(int   i=0;i <10;i++)
{
cin> > a[i];

}
cout < < "请输入第二个字符串: ";
for(int   j=0;j <10;j++)
{
cin> > b[j];

}
str(a,b);
return   0;

}

[解决办法]
程序是没有问题,问题在于,cin流读字符你停不下来
[解决办法]

C/C++ code
#include <iostream>using   namespace   std;char   str(char   *a,char   *b){char*p=a;char*q=b;int   i=0,j=0;while(*(p+i)!= '\0 '&&*(q+j)!= '\0 '&& i != 10 && j != 10){if(*(p+i) <=*(q+j)){cout <<*(p+i);i++;}else{cout <<*(q+j);j++;}}if(*(p+i)== '\0 '&&*(q+j)!= '\0 '){for(;j <10;j++){cout <<*(q+j);}}else   if(*(p+i)!= '\0 '&&*(q+j)== '\0 '){for(;i <10;i++){cout <<*(p+i);}}cout <<endl;return   0;}int   main(){char   a[10],b[10];cout << "请输入第一个字符串: ";for(int   i=0;i <10;i++){cin>> a[i];}a[9] = '\0';cin.clear();cout << "请输入第二个字符串: ";for(int   j=0;j <10;j++){cin>> b[j];}cin.clear();b[9] = '\0';str(a,b);return   0;}
[解决办法]
C/C++ code
#include <iostream> using   namespace   std; bool   str(char c[],char   a[],char   b[]) {     char*p=a;     char*q=b;     int   i=0,j=0;     int k = 0;    while(*(p+i)!= '\0'&&*(q+j)!= '\0')     {         if(*(p+i) <=*(q+j))         {             c[k++] = *(p+i);             cout <<*(p+i);             i++;         }         else         {             c[k++] = *(q+j);             cout <<*(q+j);             j++;         }     }     while(*(p+i)!= '\0')    {        c[k++] = *(p+i);         cout <<*(p+i);         i++;     }    while( *(q+j)!= '\0')    {        c[k++] = *(q+j);         cout << *(q+j);         j++;     }    c[k]='\0';    cout << endl;     return   true; } int   main() {     char c[20];    char   a[10],b[10];     cout << "请输入第一个字符串: ";     cin >> a;    cout << "请输入第二个字符串: ";     cin >> b;    str(c,a,b);     cout << c << endl;    return   0;     }//关键在于你的'\0 '写错了 

热点排行