用C语言写一个程序:输入一行字符只包含字母和空格,写一个函数输出此字符 串中最长的单词
时间: 2023-12-08 12:06:01 浏览: 55
好的,以下是用 C 语言编写的程序,可以实现输入一行字符只包含字母和空格,然后输出此字符串中最长的单词:
```c
#include <stdio.h>
#include <string.h>
#define MAXLEN 100
int main()
{
char str[MAXLEN];
printf("请输入一行字符:\n");
fgets(str, MAXLEN, stdin);
int len = strlen(str);
if (str[len-1] == '\n') {
str[len-1] = '\0'; // 去掉换行符
}
char *p = strtok(str, " ");
char *max_word = p;
while (p != NULL) {
if (strlen(p) > strlen(max_word)) {
max_word = p;
}
p = strtok(NULL, " ");
}
printf("最长的单词是:%s\n", max_word);
return 0;
}
```
这个程序中用到了 `fgets()` 函数来读取用户输入的一行字符,然后用 `strtok()` 函数将字符串按照空格分割成单词,并逐个比较单词的长度,最终得到最长的单词。
相关问题
用c语言写一个函数,输入一行字符,将此字符串中最长的单词输出
好的,以下是用C语言编写的函数,可以实现输入一行字符,将此字符串中最长的单词输出的功能。
```c
#include <stdio.h>
#include <string.h>
void findLongestWord(char str[]) {
char longestWord[100];
char currentWord[100];
int i, j, currentLen, longestLen;
int len = strlen(str);
longestLen = 0;
currentLen = 0;
for (i = 0; i < len; i++) {
if (str[i] != ' ') {
currentWord[currentLen] = str[i];
currentLen++;
} else {
currentWord[currentLen] = '\0';
if (currentLen > longestLen) {
longestLen = currentLen;
strcpy(longestWord, currentWord);
}
currentLen = 0;
}
}
currentWord[currentLen] = '\0';
if (currentLen > longestLen) {
longestLen = currentLen;
strcpy(longestWord, currentWord);
}
printf("最长的单词是:%s\n", longestWord);
}
```
该函数的参数是一个字符数组,表示输入的一行字符。函数内部通过遍历整个字符数组,将其中的单词一个一个提取出来,并比较每个单词的长度,最终输出最长的单词。
注意:该函数假设输入的字符只包含字母和空格,没有标点符号。如果输入字符串中包含标点符号,需要在函数内部添加相应的处理逻辑。
C语言写一个函数,输入一行字符,将此字符串中最长的单词输出。
好的,这个问题属于编程问题,我可以回答。
以下是C语言实现:
```c
#include <stdio.h>
#include <string.h>
void findLongestWord(char sentence[]){
int i, j, length, maxLength = 0, start = 0;
// 遍历字符串中的每一个单词
for(i = 0; sentence[i] != '\0'; i++){
// 跳过空格
while(sentence[i] == ' ' && sentence[i] != '\0') {
i++;
}
// 找到单词的起始位置
if(sentence[i] != ' '){
j = i;
length = 0;
// 计算单词的长度
while(sentence[j] != ' ' && sentence[j] != '\0'){
length++;
j++;
}
// 比较单词长度
if(length > maxLength){
maxLength = length;
start = i;
}
}
}
// 输出最长的单词
printf("最长单词为:");
for(i = start; i < start + maxLength; i++){
printf("%c", sentence[i]);
}
}
int main(){
char sentence[100];
printf("请输入一行字符:\n");
gets(sentence);
findLongestWord(sentence);
return 0;
}
```
以上代码实现了一个从用户输入中找到最长单词的函数。函数中采用了双重循环来依次扫描每一个单词并计算单词长度,然后比较长度以找到最长单词。