【发布时间】:2013-11-06 12:40:16
【问题描述】:
如何拆分string并将单词存储在单独的数组中而不使用strtok或istringstream并找到最大的单词?我只是一个初学者,所以我应该使用 string.h 中的基本函数来完成此操作,例如 strlen、strcpy 等。有可能这样做吗?我已经尝试过这样做,并且我正在发布我所做的事情。请纠正我的错误。
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void count(char n[])
{
char a[50], b[50];
for(int i=0; n[i]!= '\0'; i++)
{
static int j=0;
for(j=0;n[j]!=' ';j++)
{
a[j]=n[j];
}
static int x=0;
if(strlen(a)>x)
{
strcpy(b,a);
x=strlen(a);
}
}
cout<<"Greatest word is:"<<b;
}
int main( int, char** )
{
char n[100];
gets(n);
count(n);
}
【问题讨论】:
-
要分割字符串检查这个stackoverflow.com/questions/236129/…
-
请注意两件事:1.) 这比 C++ 更像 C - 标签“C++”在这里令人困惑。 2.)
已被弃用 - 最好使用 并编写 'std::cout' 或 'using namespace std;'在您的程序顶部 -
目标数组是否应该等于源数组减去空格?因为这是一个微不足道的练习。或者它应该是一个文字字符串数组(即:
char*s)? (当然,您应该使用向量和 stl 字符串,但这看起来像家庭作业,预计您会受到影响。)