您的位置:首页 > 编程语言

编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。

2014-07-21 21:47 375 查看
char str[] =
"zhengzhou is a big city";

int maxLength =
0;//存储最长单词长度.

int length =
0;
//用来记录单词的长度.

int maxIndex =
0;//记录最长单词开始的下标

//使用while循环对字符串进行遍历.

int i =
0;

while (str[i] !='\0') {

if (str[i] !=
' ') {

length++;

}else{

if (length > maxLength) {

maxLength = length;

maxIndex = i - maxLength;

}

length = 0;//读到空格时,将length清零,记录下一个单词的长度

}

i++;

}

//如果最后一个单词后面没有空格直接到\0,并且最后一个单词的长度也是最长的,此时就会缺少一个和maxlength比较的过程,所有我们只需要在while循环的外部加上比较操作即可.

if (length > maxLength) {

maxLength = length;

maxIndex = i - maxLength;

}

printf("maxLength = %d",maxLength);

//输出最长单词.

printf("\n最长单词为:");

// for (int i =maxIndex; i < maxLength + maxIndex; i ++) {

// printf("%c",str[i]);

// }

i = 0;//i回到第一个位置

length = 0;//长度清零

while (str[i] !=
'\0') {

if (str[i] !=
' ') {

length++;

}else{

if (length == maxLength) {//一旦找到和最长单词长度相等的单词,就 立即输出该单词

for (int j =i - maxLength; j < i; j ++) {

printf("%c",str[j]);

}

printf("\n");

}

length = 0;

}

i++;

}

if (length == maxLength) {//一旦找到和最长单词长度相等的单词,就 立即输出该单词

for (int j =i - maxLength; j < i; j ++) {

printf("%c",str[j]);

}

printf("\n");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐