c语言,输入一句英语,把单词分别输出后换行。 如 输入 thank you 输出 thank yo?

作者&投稿:丹义 (若有异议请与网页底部的电邮联系)
~

C代码和运行结果如下:

提取出纯字母组成的单词并换行输出,结果符合题意,望采纳~

附源码:

#include <stdio.h>

int isAlpha(char c) { // 判断是否是字母

    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))

        return 1;

    return 0;

}

int main() {

    char s[100] = {'\0'}; // 保存输入的一句英文

    fgets(s, 100, stdin); // 读入一行字符串,包括结尾的'
'

    int i = 0;

    while (1) {

        while (s[i] != '\0' && !isAlpha(s[i])) 

            i++; // 跳过非字母字符,注意'\0'要单独判断以跳出循环

        if (s[i] == '\0') break;

        while (isAlpha(s[i]) == 1) {

            printf("%c", s[i]); // 输出连续的字母,即单词

            i++;

        }

        printf("
"); // 否则换行,接着输出下个单词

    }

    return 0;

}




c语言,输入一句英语,把单词分别输出后换行。 如 输入 thank you 输出...
int isAlpha(char c) { \/\/ 判断是否是字母 if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))return 1;return 0;} int main() { char s[100] = {'\\0'}; \/\/ 保存输入的一句英文 fgets(s, 100, stdin); \/\/ 读入一行字符串,包括结尾的'\\n'int i = 0...

C语言:输入一句话(英语),这个话每个字母出现的次数,(包括数字和标点...
int main(){ char str1[100];char str2[26];int a[26]={0},b[10]={0},c=0,b1[10];gets(str1);int i,j,k,t;for(i=0;i<10;i++)b1[i]=i;for(i=0;i<26;i++)str2[i]=65+i;for(j=0;str1[j]!='\\0';j++){ t=0;for(i=0;i<26;i++){ if((str1[j...

C语言输入一句英语句子,把每个单词的第一位改成大写,其他单词改为小写后...
include"stdio.h"#include"string.h" int main(){int i,j,t=1;char a[1000];gets(a);for(i=0;i<strlen(a);i++) {if(a[i]==' '){t=1;continue;}if(t&&(a[i]>='a'&&a[i]<='z')) {a[i]-=32;t=0;}else if(!t&&(a[i]>='A'&&a[i]<='Z')) a[i]+=32...

c语言,输入一句英语,输出其每个单词,各占一行。代码如下,但会输出乱码...
for(;*Ptr1!=32;Ptr1++); \/\/这里没加判断Ptr1是否为 '\\0'其他地方还有些错误 一次性给你改好别问了。include<stdio.h> include<stdlib.h> int main(){ char string[1000]={'\\0'};\/\/ 初始化,不然是随意的值 char *Ptr1=string,*Ptr2=string;printf("Please input a string:")...

随机输入一句英语和一个检测字母,输出字母在句中输出的位置,C语言编程...
include <stdio.h>int main(){char c,s[100],*p; gets(s); scanf("%c",&c); for(p=s;*p&&*p!=c;p++); if(p)printf("第%d个字符是%c\\n",p-s+1,c); else printf("未找到%c\\n",c); return 0;}

急求 编程实现:输入一个英文句子,将句子中每个单词的首字母大写后输出...
void main(){ char x[100];int i;printf("请输入英语句子\\n");gets(x);x[0]=x[0]-32;for (i=1;x[i]!='\\0';i++)if (x[i-1]==' ')机器语言 在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机...

c语言,输入一句英语,把单词分别输出后换行。 如 输入 thank you 输出...
你是不是想将输入的字符串,一个字符,一个字符地打印出来?

用C语言编辑,输入一个英文句子,删除句子的前导空格和后导空格,并使单词...
int i = 0;int world = 0;while(*cp != '\\0'){ \/\/删除句子的前导空格和多余的中间空格 for(;(*cp == ' ' || *cp == '\\t' ) && *cp != '\\0'; cp++);for(;(*cp != ' ' && *cp != '\\t' ) && *cp != '\\0'; cp++){ buf[i++]=*cp;} if(*cp == ...

“设置”“语言”“输入”三词翻义成英语。
setting ,language , input

C语言中输入一个英语句子将它翻转后输出
完成!输入句子,回车换行。之后Ctrl+Z结束输入,支持句子和段落反转输出。size是最大字符数,我设的为30,你可以自己修改,也可以用realloc设成动态数组。有什么不懂得地方可以接着问我。include <stdio.h> include <malloc.h> include<string.h> define size 30 int main(){ char *a;int b;a=...

喀什地区17211067811: C语言,输入一个英文语句,要求将句中的单词分别打印出来? -
刁飞角鲨: #include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { string word;//声明一个字符串变量 while ( cin >> word )//当遇到空格时输出执行循环语句 cout<<word <<endl;//输出一个单词 return 0; }

喀什地区17211067811: c语言,输入一句英语,把单词分别输出后换行. 如 输入 thank you 输出 thank you -
刁飞角鲨: Ptr1 卡在空格那里,也就是Ptr1一直在空格,一直无法到达下一个空格.

喀什地区17211067811: 输入一行英文句子,按空格分出若干个单词,每一行只输出一个单词. c语言题目 在线等 -
刁飞角鲨: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30#include <stdio.h> intmain() {charstring[81];inti,j,num=0,word=0;charb,c;printf("Please input a sentence,Split by space!\n");gets(string);word = 1;for(i=0;...

喀什地区17211067811: c语言,输入一句英语,输出其每个单词,各占一行.代码如下,但会输出乱码,求高手指教~ -
刁飞角鲨: 你又来问了,你没加判断 for(;*Ptr1!=32;Ptr1++); //这里没加判断Ptr1是否为 '\0' 其他地方还有些错误 一次性给你改好别问了.#include#include int main(){char string[1000]={'\0'};// 初始化,不然是随意的值 char *Ptr1=string,*Ptr2=string;printf(...

喀什地区17211067811: C语言,输入一句话,分离出单词,并统计每个单词出现的次数() -
刁飞角鲨: Strcpy函数是拷贝字符串的 第一个错误的意思是不能拷贝一个char字符 所以你把那里改成用 “=”赋值就好了 第二也是这个错误 不对 看了下你的程序是想把str的内容考进char数组是吧 那就直接strcpy(a,str);//不要加[]

喀什地区17211067811: C语言输入字符串,将输入字符串里的各单词逐行输出. -
刁飞角鲨: 最简单的方法就是用strtok函数,可以轻松搞定! char str[128] ; //输入数据 char *word; gets(str);word=strtok(str, " " ); //单词间应该是用空格分开的 while ( word ) {printf("%s\n", word ); word=strtok(NULL, " " );}

喀什地区17211067811: 用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出 -
刁飞角鲨: #include <stdio.h> int split_str(char* str)//get the count of string { int count = 1; int flag = 0; while(*str!='\0') { if(*str == ' ' && flag == 1) { count++; flag = 0; }else if(*str !=' ' && *str != '\0') { flag =1; } str++; } return (count == 1 ? 0 : count); }// return -1 when ...

喀什地区17211067811: c语言中怎样逆序输出一句话中的每个单词 -
刁飞角鲨: char nixu(char a[]) { int i=0,j=0; char ch; i=strlen(a); for(j=0;j{ ch=a[j]; a[j]=a[i-1-j]; a[i-1-j]=ch; } }//这个是逆序调用函数,你可以试一下.

喀什地区17211067811: 如何用C语言输入1个句子使单词依照词典顺序显示
刁飞角鲨: //简单编1个供参考#includestdio.h#includestdlib.h#includestring.hintsort_function(constvoid*a,constvoid*b);//charlist[5][4]={cat,car,cab,cap,can};intmain(void){inti,j,k;charc,buff[300];//最多300个字符charlist[100][10];//设最多100个单词,每一个单词不...

喀什地区17211067811: c语言以键盘输入一串英文字符串,给各个单词之间以空格分开,统计其中有多少个英文单词(用基础方法做 急
刁飞角鲨: #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; int main() { char a[80]; int i,len,j; printf("输入英文单词以一个空格分开"); gets(a); len=strlen(a); for (i = 0; i &lt; len; i++) { if (a[i] ==' ') j++; } printf("有%d个单词!",j); } 祝你愉快!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网