- #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;
- }
复制代码 |