C++中去除空格

来源:百度知道 编辑:UC知道 时间:2024/05/30 15:11:14
#include"iostream.h"
#define max 100
void main()
{
int j=0;
char a[max];
char b[max];
cout<<"please input a:";
cin.getline(a,max,'q');
//cin>>a;
for(int i=0;a[i]!='q';i++)
{
if(a[i]!=' ')
b[j++]=a[i];
}
for(int k=0;k<j;k++)
cout<<b[k];
}
我这个程序输入0 1 2 3 4 5 6 7 8 9 10 q
然后我想把0 1 2 3 4 5 6 7 8 9 10付给char b
让b[0]=0 b[1]=1 b[2]=2...........b[10]=10
就是想把a中的空格去掉
怎么结果什么都不显示啊
我用了kingstarer 的程序后,当我输入0 1 2 3 4 5 6 7 8 9 10 q后,当我想显示b[10]时,按道理他应该显示的是10,但是结果显示的是0

for(int i=0;a[i]!='q';i++)
错了,
a[i]中没有'q'

#include <iostream.h>

#define MAX 100
int main()
{
char a[MAX];
char b[MAX];
cout<<"please input a:"<<endl;
cin.getline(a,100,'q');
int j = 0;
for(int i=0;a[i]!='\0';i++)
{
if(a[i]!=' ')
b[j++]=a[i];
}
for(int k=0;k<j;k++)
cout<<b[k];
return 0;
}

显示啊,我用VC6.0显示了乱码啊

因为cin读到q就结束了,但没将q存到字符串a中,所以你的代码不能正确完成你所要的功能

我将你的代码作了点小修改就能完成你的要求了,不过要注意输入的字符中,一定要有q

#include"iostream.h"
#define max 100
void main()
{
int j=0;
char a[max];
char b[max];
cout<<"please input a:";
cin.getline(a,max,'\n');//就是这里改了
for(int i=0;a[i]!='q';i++)
{
if(a[i]!=' ')
{
b[j++]=a[i];