黑马程序员技术交流社区
标题:
编程题求解
[打印本页]
作者:
人生充满期待
时间:
2015-4-26 12:36
标题:
编程题求解
在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
作者:
xiaofei93
时间:
2015-4-26 13:20
#include <stdio.h>
#include <string.h>
int main()
{
//定义一个已知的字符串
char s[128] = "asdf dd chen chenfeichenfei chchchchch";
//定义两个指针 p1指向整条字符串向右移动 p2指向最长的串
char *p1, *p2;
//max为最大长度,初始化为0,len是查找的字符串长度,初始为0
int max=0, len=0;
p1=s;
for (int i=0; i<=strlen(s); i++)
{
// 如果当前字符为空格或结束,则比较当前单词长度是否大于最大值,再将长度复位。
if ((s[i]==' ') || (s[i]=='\0'))
{
//如果在后续的查询中长度大于max,p2指向p1查询时指定的这一段字符串
if (len>max)
{
max=len;
p2=p1;
}
len=0;
}
else // 如果当前字符非空,如果当前长度为0,则表示新单词。
{
if (len==0)
p1=&s[i];
++len;
}
}
//最长的字符串是指针p2所指的
printf("最长的字符串是:");
while (*p2 && *p2!=' ')
//循环打印p2所指
printf("%c", *p2++);
printf("\n");
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2