6.用一个函数来实现将一行字符串中最长的单词找出。此行字符串从主函数传递给该函数。
时间: 2024-06-13 10:09:09 浏览: 68
以下是一个函数,可以找到一行字符串中最长的单词:
```php
function findLongestWord($str) {
// 将字符串按空格分割成单词数组
$words = explode(" ", $str);
$maxLength = 0;
$longestWord = "";
// 遍历单词数组,找到最长的单词
foreach ($words as $word) {
// 去除单词中的标点符号
$word = preg_replace("/[^A-Za-z]/", '', $word);
// 如果当前单词长度大于最大长度,则更新最大长度和最长单词
if (strlen($word) > $maxLength) {
$maxLength = strlen($word);
$longestWord = $word;
}
}
return $longestWord;
}
// 示例
$str = "This is a test string to find the longest word.";
$longestWord = findLongestWord($str);
echo "The longest word is: " . $longestWord; // 输出:longest
```
相关问题
6用C语言实现.用一个函数来实现将一行字符串中最长的单词找出。此行字符串从主函数传递给该函数。
以下是用C语言实现将一行字符串中最长的单词找出的函数示例:
```c
#include <stdio.h>
#include <string.h>
void findLongestWord(char str[]) {
int i, j, len, maxLen = 0, start = -1;
char longest[100], temp[100];
len = strlen(str);
for (i = 0; i < len; i++) {
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
if (start == -1) {
start = i;
}
} else {
if (start != -1) {
int tempLen = i - start;
strncpy(temp, &str[start], tempLen);
temp[tempLen] = '\0';
if (tempLen > maxLen) {
maxLen = tempLen;
strcpy(longest, temp);
}
start = -1;
}
}
}
if (start != -1) {
int tempLen = i - start;
strncpy(temp, &str[start], tempLen);
temp[tempLen] = '\0';
if (tempLen > maxLen) {
maxLen = tempLen;
strcpy(longest, temp);
}
}
printf("The longest word is: %s\n", longest);
}
int main() {
char str[100];
printf("Please enter a string: ");
fgets(str, 100, stdin);
findLongestWord(str);
return 0;
}
```
用一个函数来实现将一行字符串中最长的单词找出。此行字符串从主函数传递给该函数。用C语言写
以下是一个示例代码,函数名为`findLongestWord`:
```c
#include <stdio.h>
#include <string.h>
void findLongestWord(char *str) {
int len = strlen(str);
int start = 0, end = 0, max_start = 0, max_end = 0, max_len = 0;
while (end <= len) {
if (str[end] == ' ' || str[end] == '\0') {
int cur_len = end - start;
if (cur_len > max_len) {
max_len = cur_len;
max_start = start;
max_end = end;
}
start = end + 1;
}
end++;
}
printf("The longest word is: ");
for (int i = max_start; i < max_end; i++) {
printf("%c", str[i]);
}
printf("\n");
}
int main() {
char str[] = "hello world, this is a test";
findLongestWord(str);
return 0;
}
```
该函数的思路是遍历整个字符串,当遇到空格或字符串结尾时,判断当前单词的长度是否大于之前记录的最长单词长度,若是则更新最长单词的起始位置和结束位置。最后输出最长单词即可。
阅读全文