c++在字符串中怎么剔除空格字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++在字符串中怎么剔除空格字符相关的知识,希望对你有一定的参考价值。

参考技术A #include <stdio.h>
#include <string.h>
#include <malloc.h>
void trimall(char* s)

int l=strlen(s);
char* tp=(char*)malloc(l+1);
char* ctp=tp;
char* cs=s;
while(*s)

if(*s!=' ')

*tp=*s;
tp++;

s++;

*tp='\0';
strcpy(cs,ctp);
free(ctp);


int main()

char str[100];
printf("输入一个字符串:");
gets(str);
trimall(str);
printf("清除空格后:\n%s\n",str);
return 0;


输入一个字符串:123 abcd fhdjjs bs n
清除空格后:
123abcdfhdjjsbsn
请按任意键继续. . .追问

只采用#include
#include
头文件

追答

#include
#include
void trimall(char* s)

int l=strlen(s);
char ctp[100];
char* tp=ctp;
char* cs=s;
while(*s)

if(*s!=' ')

*tp=*s;
tp++;

s++;

*tp='\0';
strcpy(cs,ctp);


int main()

char str[100];
printf("输入一个字符串:");
gets(str);
trimall(str);
printf("清除空格后:\n%s\n",str);
return 0;

本回答被提问者采纳

如何在 C++ 中使用 cin 将所有空格读入字符串?

【中文标题】如何在 C++ 中使用 cin 将所有空格读入字符串?【英文标题】:How to read in all whitespaces with cin in C++ into a string? 【发布时间】:2018-02-19 05:05:16 【问题描述】:

这是一个令人费解的问题,但是否可以读取用户的输入但让 cin 不停留在换行符或空格处?例如,用户可以输入:

Hello  w orld!


Hello World!

我希望所有的空格和换行符都输入到字符串中,基本上是来自用户的原始输入。有人可以告诉我如何在 C++ 中做到这一点吗?谢谢。

【问题讨论】:

您可以选择另一个分隔符(输入结束),然后使用string o; std::getline(cin, o, '-'); **其中“-”是必需的分隔符,它是一个单字符** 方便阅读:***.com/a/36978839/4581301 这使得How to read until EOF from cin in C++ 成为各种骗局。 【参考方案1】:

您可以使用 std::getline 来显示:

#include <iostream>
#include <string>

int main()

  std::string helloWorld;
  std::getline( std::cin, helloWorld );
  return 0;

【讨论】:

以上是关于c++在字符串中怎么剔除空格字符的主要内容,如果未能解决你的问题,请参考以下文章

Python去除字符串的空格

题目:求出给定字符串中大写字母、小写字母、数字、空格及其他字符的个数。 注意 C++题目

如何在 C++ 中读取由空格分隔的字符串? [关闭]

如何在 C++ 中使用 cin 将所有空格读入字符串?

js关于处理字符串中的空格问题方法总结

c++利用cin.get()输入带空格的一串数据【追加悬赏】