黑马程序员技术交流社区
标题:
求解一个C语言编程问题
[打印本页]
作者:
YKS
时间:
2014-7-11 00:30
标题:
求解一个C语言编程问题
题目:在已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
已查过好多资料了,但是结果都是大同小异,始终没有完全解决这个问题
作者:
★Joean_Zhou
时间:
2014-7-11 09:58
/*
在已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
*/
#include<stdio.h>
int main()
{
//定义一个已知的字符串
char a[] = "we need you and forever love you";
//定义一个指针指向a的首元素
char *p = a;
//定义一个指针来存放最长单词的首字母地址
char *save;
//定义单词的长度,与最长单词的长度
int length = 0, lengthMax = 0;
//循环遍历数组
for(int i = 0; a[i] != '\0'; i++)
{
//如果不为空格就使p指向的地址+1
if(*p != ' ')
{
p++;
length++;
}
//如果为空格
else if(*p == ' ')
{
p++;
//找出最长单词
if(length > lengthMax)
{
lengthMax = length;
save = p - length - 1;
}
length = 0;
}
}
//输出最长单词
printf("最长单词为: ");
//从保存的最长单词输出
for(int i = 0; i < lengthMax; i++)
{
printf("%c",*(save + i));
}
return 0;
}
//注:这段程序只能找出除了最后一个单词以外的最长单词,如果最长的单词最后一个程序就有点问题。。。。如果调试出来可以@我哦。。。谢谢
作者:
YKS
时间:
2014-7-11 14:06
★Joean_Zhou 发表于 2014-7-11 09:58
/*
在已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
*/
谢谢啊 能不能将最后一个单词也调出来呢?
作者:
443201683@qq.co
时间:
2014-7-16 20:24
#include<stdio.h>
#include"stdlib.h"
int main(void)
{
int i=0,n=0,m=0,l=0;
char *strp,str[500],strm[50]={'\0'};
strp=str;
printf("Enter a work and press return: ");
gets_s(str);
for(;str[i]!='\0';i++)
{
if(((str[i]==' ')&&(m<=l))||(str[i+1]=='\0')&&(m<=l))
{
m=l;
n=i;
l=0;
}
else l++;
}
for(i=0;i<m;i++) strm[i]=str[n+i-m];
strm[m]='\0';
printf("%s\n%d",strm,m);
system("pause");
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2