黑马程序员技术交流社区
标题: 【分享】【源代码】输出一句话中最长的单词 [打印本页]
作者: FengLinHuoShan 时间: 2015-11-20 21:37
标题: 【分享】【源代码】输出一句话中最长的单词
本帖最后由 FengLinHuoShan 于 2015-11-20 21:39 编辑
#include <stdio.h>
#include <string.h>
int main(){
//
printf("请输入一句话:\n");
//定义数组a,使用gets()函数接收一句话放到数组a中
char a[100];
gets(a);
int len = strlen(a);//定义变量len接收这句话中总共有几个字母
char *s[100];
int count = 0;
*s = a;
for (int i=0; i<len; i++) {//循环如果碰到空格count加1,并将空格换成\0————count表示单词的个数,
if (a==' ') {
count++;
a='\0';
s[count]=&a[i+1];//把每一个单词的首地址放到指针数组中
}
}
char *max = s[0];
for (int i=0; i<=count; i++) {//循环遍历指针数组,求出最长单词并输出
if (strlen(max)<strlen(s)) {
max = s;
}
}
printf("最长单词是%s",max);
}
作者: FengLinHuoShan 时间: 2015-11-20 21:49
这个大家估计用的到,黑马基础测试的题目,有更好的思路吗?
作者: IPswhatb“is” 时间: 2015-11-20 23:15
指针那段没有看懂
作者: 唐阿丽 时间: 2015-11-21 11:45
支持一下
作者: black747521 时间: 2015-11-21 14:28
和我写的差不多,但是如果有多个最长的字符串,你只能输出一个。这是我的源码,仅供参考http://bbs.itheima.com/thread-258491-1-1.html
作者: cbl16888 时间: 2015-11-21 21:38
支持一下来了,顺带学习
作者: 荣荣 时间: 2015-11-22 08:42
#import <Foundation/Foundation.h>
char str0[100];
int max=0;
int main(int argc, const char * argv[]) {
@autoreleasepool {
//输入一个字符串
NSLog(@"请输入一个字符串:");
gets(str0);
NSString *str = [NSString stringWithFormat:@"%s",str0];
NSLog(@"您数入的字符串:%@",str);
//将字符串准换成数组
NSArray *arr = [str componentsSeparatedByString:@" "];
//找出数组的最大长度
for (int i = 0; i<arr.count; i++)
{
max = (max>(int)[arr length])?max:(int)[arr length];
}
//将所以最大长度的元素输出
for (int i = 0; i<arr.count; i++)
{
if ((int)[arr length]==max)
{
NSLog(@"最大长度的字符串为:%@,长度为%d",arr,max);
}
}
}
return 0;
}
作者: ToBeJeek1 时间: 2015-11-22 13:41
楼主的代码有bug,输入hello! my name is geekeringer!这串字符串时,代码给出的结果是:最长单词是hello!,这明显不对,希望楼主能够改善,我会试着帮您改改
作者: FengLinHuoShan 时间: 2015-11-24 21:42
兄弟 我运行没有错误啊发达
作者: FengLinHuoShan 时间: 2015-11-24 21:44
兄弟 你的技术分好多啊 能给我几个吗??你懂的!!嘿嘿
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |