这道题考察了C语言中输入语句的使用和一些特殊情况的处理。我们需要使用getchar函数来捕获输入,然后根据字符来判断单词的长度。当遇到空格时,我们需要判断计数器是否大于0。这是因为空格可能会出现在单词之间,而不是单词的结尾。所以在循环结束后,还需要对尾部的单词进行计数。大家如果有任何不清楚的地方,欢迎留言讨论。
你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。 输入格式: 输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。 输出格式: 在一行中输出这行文本对应的单词的长度,每个长度之间以...
//计算字符串最后一个单词的长度,单词以空格隔开。 #include<stdio.h> #include<string.h> #include<windows.h> int main() { char str[128]; gets(str); int count=0; int len=strlen(str); for(int i=(len-1);i>=0;i--) { if(str[i]!=' ') { count++; } else { break; } } pri...
//计算字符串最后一个单词的长度,单词以空格隔开。#include<stdio.h>#include<string.h>#include<windows.h>intmain() {charstr[128]; gets(str);intcount=0;intlen=strlen(str);for(inti=(len-1);i>=0;i--) {if(str[i]!='') { count++; }else{break; } } printf("%d\n",count); system...
intlongestString(char str[]){//此函数用于找出字符串中最长单词的长度int length=strlen(str);int j=0,begin=0,end,maxnum=0;//此处的j用于表示前一位字符的状态,j为0是空格,j为1不是空格for(int i=0;i<=length-1;i++){if(str[i]==' '&&j==1){//*当前字符是空格,前一位字符不为空格、...
printf("最长的单词是第%d个,它的长度是%d\n",k);}我只会编到这一步,其他的不会了, 相关知识点: 试题来源: 解析 我刚做了一关于英文句子里面每个单词平均字长的.与你问题很近.#include "stdio.h"#include #include "ctype.h"#define MAX 1000000char buf[MAX],s[MAX];char p[MAX];int main(){...
dqs_index = i; //这个单词的起始下标是i } count++; }else{ //当前字符不是字母 //如果最大长度有值且当前单词的长度大于之前的最大长度,或者最大长度还没有值(当前是第一个单词) if((maxl && count>maxl) || !maxl){ maxl = count; ...
你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。 输入格式: 输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。 输出格式: 在一行中输出这行文本对应的单词的长度,每个长度之间以...
= EOF) { if(isalpha(c)) ++i; else if(c == ' ') { if(i > max) max = i; i = 0; } } printf("max is %d\n",max); return 0;} 你的代码给你看了下问题 include <stdio.h>#include <string.h>void main(){char s1[100],s2[10...
上一次读到的最长单词长度,所以最后输出时要再判断一下max和count的大小,输出大的那个。帮你修改后的程序如下:include<stdio.h> main(){char str[100];int max=0,count=0,i;printf("Input a string:\n");gets(str);for(i=0;str[i];i++){ if(str[i]>='A'&& str[i]<='Z'){ ...