从键盘输入一个字符串,删除字符串中的所有空格后输出

是使用C++的

#include<stdio.h>

#include<stdlib.h>

#include<ctype.h> //isalpha()函数的头文件

int main()

{

char *p = NULL;

p =(char *)malloc(100*sizeof(char));    //将malloc函数返回的void *指针强制转换为char *指针

printf("请输入字符串:\n");

gets(p);    //输入字符串

printf("\n删除了所有空格和标点符号的字符串\n");

while (*p)

{

if (isalpha(*p))

{

printf("%c", *p);

}

p++;

}

printf("\n");

return 0;

}

运行效果:

扩展资料:

1、isalpha()函数

作用:判断是否为字母

头文件:#include&lt;ctype.h&gt;

原型:int isalpha(int ch)

返回值:若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0。

2、gets()函数

原型:gets(数组名)

作用:把输入的字符串传入给定的数组中

头文件:#include&lt;stdio.h&gt;

返回值:正常时返回字符串存放的数组的首地址(指针),错误或遇到EOF时返回NULL

3、while(*p)

解读:*p内容有值,也就是while(*p)等同于while(*p!='\0'),\0是字符串结束的标志,字符串结束之前都有值

4、printf("%c",*p)

等同于putchar(*p),putchar()函数作用是向终端输出一个字符

5、scanf()函数与gets()函数的区别

在于输入的字符串是否中间有空格,对于gets()函数,只有遇到'\n'时才停止输入,对于scanf()函数,出现'\n'或空格都停止输入。

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-27

Java的String类里面有个trim()方法有这个作用,如果使用C的话

可以判断是否是空格然后构建新的字符数组然后删除空格后输出

.。。。。。。

这个应该挺容易的吧 

话说

第2个回答  推荐于2017-07-31

C++程序:

#include <iostream>
#include <string.h>

using namespace std;

void main()
{
char *str = new char[100];
char *p;

cout<<"请输入一个字符串:";
gets(str);

for(p=str; *p;)
{
if(*p == ' ')
{
strcpy(p, p+1);
continue;
}
p++;
}

cout<<"删除所有空格后的字符串:"<<str<<endl;
}


运行测试:

请输入一个字符串:How are you ?
删除所有空格后的字符串:Howareyou?

本回答被网友采纳
第3个回答  2010-12-24
这个很简单,用替换函数把空格替换为""空白字符串就可以了。
Dim StrIn As String
StrIn = InputBox("请输入任意字符串", "输入字符串:", "")
If StrIn <> "" Then StrIn = Replace(StrIn, " ", "")本回答被网友采纳
第4个回答  2010-12-24
用C++回答为:
#includeiostream
using namespace std;
void main()
{
int c,e,x,y,z;
cout"请随意输入一些字符:"endl;
cinc;
e=0;x=0;y=0;z=0;
while ( (c = getchar( ) ) != '\n' )
{
if((c='a'c='z')||(c='A'c='Z')) //计算英文字母
e++;
else if(c==' ') //计算空格
x++;
else if(c='0'c='9') //计算数字
y++;
else if((c='!' c='/')||(c=':' c='@')) //计算其他字符
z++;
}
cout"英文字母数为:"e"个"endl;
cout"空格数为:"x"个"endl;
cout"数字为:"y"个"endl;
cout"其它字符数为:"z"个"endl;
}

从键盘输入一个字符串,删除字符串中的所有空格后输出
p =(char *)malloc(100*sizeof(char)); \/\/将malloc函数返回的void *指针强制转换为char *指针 printf("请输入字符串:\\n"); gets(p); \/\/输入字符串 printf("\\n删除了所有空格和标点符号的字符串\\n"); while (*p) { if (isalpha(*p)) { printf("%c", *p); } p++; } printf("\\n"); ret...

...输入一个字符串,删除该字符串中的所有空格并输出处理后的字符串_百...
int main(){ char s[1024],c[1024];int len,n=0,i;char p,q;p=s;q=c;printf(“请输入字符串的长度:”);scanf("%d",&len);printf(“请输入一串字符串:”);for(i=0;i<len+1;i++){ scanf("%c",p+i);} for(i=0;i<len+1;i++){ if((p+i)>=48&&(p+i)<=57||...

...一个字符数组从键盘输入一个字符串,删除字符串中所有非字母字符,然 ...
include <stdio.h> int main(){ char a[80];gets(a);int i, j = 0;for(i=0; a[i]; i++)if((a[i] >= 'a' && a[i] <='z') || (a[i] >='A' && a[i] <= 'Z')){ a[j] = a[i];j++;} a[j] = '\\0';puts(a);return 0;} ...

c语言编写,输入字符串,删除字符串中所有空格并输出
include <stdio.h>int main (){int i,i1;char a[100];gets(a);for (i=0;a[i]!='\\0';i++)if (a[i]==' ')for (i1=i;a[i1]!='\\0';i1++)a[i1]=a[i1+1];for (i=0;a[i]!='\\0';i++)printf ("%c",a[i]);putchar ('\\n');return 0;...

C语言编写程序,从键盘输入一个字符串,删除该字符串的所有首部和尾部数字...
include "stdio.h"int main(int argc,char *argv[]){char s[300];int i,n;printf("Please enter a string...\\n");scanf("%299s",s);for(n=0;s[n];n++);for(n--;s[n]>='0' && s[n]<='9';n--);s[n+1]='\\0';for(i=n=0;s[n]>='0' && s[n]<='9';...

...从键盘输入一个带有空格的字符串,去掉字符串后再输出(要求只能定义...
1、首先,随便创建一个有main方法的类。2、定义一个字符串变量,这里给变量赋值,前后都留有一个空格。3、先运行一遍,看输出效果,可以看到百度包括空格的几个字符都打印出来了。4、为了更加清晰,用字符串对象另外一个方法“length()”得到此字符串的长度为6, 说明的确是“百度”加两个空格的长度...

c语言。字符串。编写程序,删除字符串中所有空格并输出
include <stdio.h> include <string.h> int main(void){ int len,i,j;char s[100],a[100];printf("请输入字符串:");gets(s);len=strlen(s);j=0;for(i=0;i<len;i++){ if(s[i]!=' '){ a[j]=s[i];j++;} } a[j]='\\0';printf("%s\\n",a);} ...

C语言编程:从键盘输入一个有空格的字符串,删除所有重复字符,按字符升 ...
include "stdio.h"int main(int argc,char *argv[]){ char a[101],*p,*px,t;printf("Input a string...\\n");for(p=a,t=0;t<100;t++)\/\/输入字符串 if((*(p+t)=getchar())=='\\n')break;(p+t)='\\0';for(p=a;*p;p++)\/\/排序 for(px=p+1;*px;px++)if(*p>*px...

...一个字符数组从键盘输入一个字符串,删除字符串中所有非字母字符,然 ...
include<stdio.h> include<string.h> include<conio.h> int main(){ char str[256],str2[256];scanf("%s",str);for(i=0;i<strlen(str);i++)if((str[i]>=65&&str[i]<=90)||(str[i]>=97&&str[i]<=122)){ str2[j]=str[i];j++;} str2[j]='\\0';printf("%s",str2...

:输入一个字符串以回车符为结束,删除其中的所有的空格符,生成一个新...
\/*删除空格函数*\/void trim (char *str) { \/*必须在main函数前边定义函数,否则会编译错误*\/ char *tmp = str; while (*str != 0) { if (*str != 0x20) { \/*空格的ASCII码是0x20*\/ *tmp++ = *str; } str++; } *tmp = 0;}main () { c...

相似回答