女武神电影:C语言如何将一个字符串中的单词分别存到另一个二维数组?

来源:百度文库 编辑:高考问答 时间:2024/04/29 22:23:40
C语言如何将一个字符串中的单词分别存到另一个二维数组?
把算法说出来

/*通过gcc编译*/
#include <stdio.h>
#include <string.h>

int isalpha(char t)
{
return( (t>='a'&&t<='z') || (t>='A'&&t<='Z') );
}

int main()
{
char line[256];
char word[128][80];
char tmp[2]={"\0\0"};
int i,length,totalNumber;
int prvIsAlpha;

while(1)
{
gets(line);
if(line[0]=='\0') break;
/*如果输入空行的话就退出程序*/

totalNumber=0;
length=strlen(line);

/*如果当前字符是字母那么通过判断前一个字符是不是字母来判断当前单词的输入是否断开*/
prvIsAlpha=0;
for(i=0;i<length;++i)
if(isalpha(line[i]))
{
tmp[0]=line[i];
if(prvIsAlpha) strcat(word[totalNumber-1],tmp);
else word[totalNumber++][0]=line[i];
prvIsAlpha=1;
}
else prvIsAlpha=0;

/*输出结果*/
if(totalNumber>1)
{
printf("There are %d words.\nThey are %s",totalNumber,word[0]);
for(i=1;i<totalNumber;++i)printf(",%s",word[i]);
printf(".\n");
}
if(totalNumber==1)
printf("There is 1 word.\nIt is %s.\n",word[0]);
if(totalNumber==0)
printf("There is no word.\n");
/*结果输出完毕*/
}

return 0;
}

用STRCPY()库函数