...串最短的单词输出,在主函数中输入字符串,编写一个函数完成最短单词的...
发布网友
发布时间:2024-09-28 01:20
我来回答
共2个回答
热心网友
时间:2024-09-30 06:13
给你个简单点的
#include <string.h>
#include <stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
void main( void )
{
char string[255] ;
char seps[] = " ,\t\n";
char *token;
char strRes[255];
int strL = 255;
cin.getline(string,255);
token = strtok( string, seps );
while( token != NULL )
{
int tmpL = strlen(token);
if(tmpL <= strL)
{
strcpy(strRes,token);
}
token = strtok( NULL, seps );
}
printf("%s\n",strRes);
system("Pause");
}
字符串的最大长度自己根据实际情况定,我这里是255,我的方法主要用到了一个字符串的处理函数strtok(),这个函数的就是根据自己的需要,拆分字符串
热心网友
时间:2024-09-30 06:13
//找出所有最短单词
#include <iostream>
#include <vector>
using namespace std;
int main()
{
char str[256];
int min = 256;
gets(str);
int i,k=0,len=0;
char c;
vector<int>wordlen;
vector<int>wordstart;
for (i=0;i<strlen(str);i++)
{
c = str[i];
if(c >='a' && c<='z' ||
c >='A' && c<='Z' ||
c >='0' && c<='9')len++;
else
{
if(len <= min && len != 0)
{
min = len;
wordlen.push_back(len);
wordstart.push_back(i - min);
}
len = 0;
}
}
//处理最后一个单词
if(len <= min && len > 0)
{
min = len;
wordlen.push_back(len);
wordstart.push_back(i - min);
}
for(i = 0; i < wordlen.size(); i++)
{
if( wordlen[i] == min)
{
for( k = wordstart[i]; k<wordstart[i]+min; k++)cout<<str[k];
cout<<endl;
}
}
return 1;
}