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

renniyou 2004-04-29 05:06:06
UP!!
...全文
95 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
去看看变异原理,有穷状态机
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2004-04-29 05:06
社区公告
暂无公告