要求用C程序实现如下功能:将一个字符串滤掉其中的空格,分解成单个的单词字符数组,如“this is a pen!"=>"this" "is" "a" "pen!"

renniyou 2004-04-29 05:06:06
UP!!
...全文
141 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyllar 2004-05-02
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
#include<string.h>
int main(){
char* p=" ";//要处理的字符串
int num=sizeof(p);
char* m[];
int i=0;
int k=0;
int j=0;
char* p=new char[sizeof(p)];
char temp=p[i];
while(temp!='\0'){
while(temp[i]!=' '&&temp[i]!='\0'){
p[j++]=temp[i++];
p[j]='\0' ;
}
while(temp[i]==' '&&temp[i]!='\0')
i++;
if(p!=NULL)
m[k++]=p
j=0;
}


sueprljy 2004-04-30
  • 打赏
  • 举报
回复
//C++代码
main()
{
char *p = "This is a pen";
char a[100][20] ;//假设最多100个单词,每个单词最多不超过20位
int i = 0;
int j = 0;
while(1)
{
if (*p == ' '||*p == 0)
{
a[i++][j] = '\0';
j=0;
if(*p == 0)break;
}
else
{
a[i][j++] = *p;
}
p++;
}
for (int count = 0; count<i; count++)
{
printf("%s\n",a[count]);
}
getchar();
}
fansy007 2004-04-30
  • 打赏
  • 举报
回复
vector<string>str;

string word;
cin>>word;
str.push_back(word);
hongweijin 2004-04-29
  • 打赏
  • 举报
回复
算法基本如此
hongweijin 2004-04-29
  • 打赏
  • 举报
回复
呵呵,这些代码可以如下:
#include <stdio.h>
#define IN 1
#define OUT 0

main()
{
int c, state;

state = OUT;
while ((c = getchar()) != EOF)
{
if (c == ' ' || c == '\n' || c == '\t')
{
if (state == IN)
{
putchar('\n');
state = OUT;
}

}
else if (state == OUT)
{
state = IN;
putchar(c);
}
else
{
putchar(c);
}
}
}
bm1408 2004-04-29
  • 打赏
  • 举报
回复
这个不难吧!

用不到什么太高深的东东啊!
while(没有到文件尾)
if(第一个字符是不是空格)
下一个
else
for(继续读)
再IF
..........
Areece 2004-04-29
  • 打赏
  • 举报
回复
看看strtok,可能对你有帮助
pigpig 2004-04-29
  • 打赏
  • 举报
回复
去看看变异原理,有穷状态机

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧