C语言题,提取英文句子的单词并排序输出。

作者&投稿:仪初 (若有异议请与网页底部的电邮联系)
提取英文句子中的单词并排序输出 c语言~

#include #include int GetWords(char *sentence, char *words[]);void SortStrings( char *strs[],int count);int main(){char str[200];int nWords = 0;char *words[20];int i;printf("input a string: ");gets(str);nWords = GetWords(str, words);SortStrings(words,nWords);puts("output:");for(i=0; i0){p=strs[i];strs[i]=strs[j];strs[j]=p;}}}/******end******/}

#include #include int main(){ char a[1024], b[256]; gets(a); gets(b); for (int i = 0; i = strlen(b)){ printf("%d", i + 1); break; } } return 0;}

说明:原题目中的const要删除,否则过不了编译。因为const了就不能排序了……

#include <stdio.h>
#include "string.h"
int GetWords(char *sentence, char *words[]);
void SortStrings(char *strs[], int count);//const 
int main(int argc,char *argv[]){
    char str[200];
    int nWords = 0;
    char *words[20];
    int i;
    printf("input a string: ");
    gets(str);
    nWords = GetWords(str,words);
    SortStrings(words, nWords);
    puts("output:");
    for(i=0;i<nWords;i++)
        puts(words[i]);
    return 0;
}
int GetWords(char *str, char *words[]){
    /******start******/
    int i,j,ln=strlen(str);
    for(i=0;i<ln;i++)
    if(str[i]==' ' || str[i]=='.')
        str[i]='\0';
    for(i=0;str[i]=='\0';i++);
    for(j=0,words[j++]=str+i;i<ln;i++)
        if(str[i]=='\0')
            words[j++]=str+i+1;
    return j;
    /******end******/
}
void SortStrings(char *strs[], int count){//const 
    /******start******/
    int i,j,k;
    char *p;
    for(i=0;i<count-1;i++){
        for(k=i,j=k+1;j<count;j++)
            if(strcmp(strs[k],strs[j])>0)
                k=j;
        if(k-i)
            p=strs[i],strs[i]=strs[k],strs[k]=p;
    }
    /******end******/
}

执行结果如下:



#include <stdio.h>
#include <string.h>

int GetWords(char *sentence, char *words[]);
void SortStrings(char *strs[], int count);

int main()
{
char str[200];
int nWords = 0;
char *words[20];
int i;

printf("input a string: ");
gets(str);

nWords = GetWords(str, words);
// printf("nWords=%d
",nWords);
SortStrings(words, nWords);

puts("output:");
for(i=0; i<nWords; i++)
puts(words[i]);

return 0;
}


int GetWords(char *str, char *words[])
{
/******start******/
int i,j=0;
int len=strlen(str);
// printf("&str[0]=%s
",&str[0]);
words[j++]=&str[0];
for(i=0;i<len;i++){
if(str[i]==' '){
str[i]='\0';
// printf("&str[%d]=%s
",i+1,&str[i+1]);
words[j++]=&str[i+1];
}
if(str[i]=='.'){
str[i]='\0';
}
}
return j;
}
void SortStrings(char *strs[], int count)
{
/******start******/
int i,j;
char *ch;
for(i=0;i<count;i++){
for(j=i+1;j<count;j++){
if(strcmp(strs[i],strs[j])>0){
ch = strs[j];
strs[j]=strs[i];
strs[i]=ch;
}
}
}
/******end******/
}



C语言题,提取英文句子的单词并排序输出。
gets(str); nWords = GetWords(str,words); SortStrings(words, nWords); puts("output:"); for(i=0;i<nWords;i++) puts(words[i]); return 0;}int GetWords(

C语言编程题:(不用C++,用C!)分别找出一个英文句子里出现频率最高和最...
include?"stdio.h"include?string.h struct?wn{ int?x;char?w[21];};int?main(int?argv,char?*argc[]){ char?s[]="Moonlight?is?in?front?of?my?bed.?I?took?it?for?frost?on?the?ground.?I?lift?my?eyes?to?watch?the?mountain?moon.?Lower?them?dream?a?dream?of?home.";char...

c语言简单问题,输入一行英文,提取其中的单词。总是有个错误找不到,麻烦...
\/\/int isKeyWord(char c)函数错误。include "stdio.h" \/\/输入一行英文,提取其中所有的单词。include "string.h"int isKeyWord(char c){\/\/这样不一定计算完所有的条件,即可正确返回,而且容易分析,还好看 if((c-'A')<0 )return 0;if((c-'A')<26)return 1;if((c-'a')<0 )return...

C语言题:有一篇文章,共有3行文字每行有80个字符。编写程序分别统计出...
include<stdio.h> void main() { FILE *fp; char s[81]; int i,j,a,b;if ( fp=fopen("test.txt","r") ) { a=b=0;for ( i=0;i<3;i++ ) { fgets(s,80,fp); j=0;while ( s[j]!=0 )if ( s[j]>='A' && s[j]<='Z' ) a++;else if ( s[j]>='a' ...

求助大神。C语言题目:有一篇文章,共有3行文字,每行有个80字符.要求分别...
1、gets(str[i][j]); 这一句中j没赋值,而且把字符串送给一个字符型二维数组的元素是行不通 的,通不过编译;你可以改成gets(str[i]),但是只能输入一行,因为gets()虽然不会将空格识别 为'\\0',但它把回车视为'\\0';这一句最好改成for(;i<=2;gets(str[i]),i++);,这里分号别忘...

c语言题。 按顺序打印输出26个英文字母,
include<stdio.h> int main(){ int i;for(i=0;i<26;i++)printf("%c ",i+'A');for(i=0;i<26;i++)printf("%c ",i+'a');return 0;}

语言单位提取问题&结构主义语言学
选用、仿写句子常常与扩展和变换句式,与语法、修辞、标点、口语交际综合考查,是一种“带着枷锁跳舞”式的语言实践,要求考生在特定的语言环境中,选用、仿写出富有创新意识,且能表达一定思想内容的语句。考查形式以主观题为主。 典型考点七——口语交际 考点简析: 口语交际是听与说双方的互动过程,是在具体的情境中人...

C语言编程题:(不用C++,用C!)分别找出一个英文句子里出现频率最高和最...
include "stdio.h"#include <string.h>struct wn{int x;char w[21];};int main(int argv,char *argc[]){char s[]="Moonlight is in front of my bed. I took it for frost on the ground. I lift my eyes to watch the mountain moon. Lower them dream a dream of home.";char...

C语言题目输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的...
else if('0'<=nextchar<='9')修改后:include <stdio.h> int main(){ int letter=0,space=0,number=0,others=0;char nextchar;printf("Input your string\\n");for(;nextchar!='\\n';){ scanf("%c",&nextchar);if('a'<=nextchar&&nextchar<='z'||'A'<=nextchar&&nextchar<='Z')...

C语言题:有一篇文章,共有3行文字,每行有80个字符。编写程序分别统计出...
int i,j;int u[3],l[3],d[3],s[3],other[3];\/\/按行统计,u-大写,l-小写,d-数字,s-空格,other-其它字符 for(i=0;i<3;i++)\/\/输入每行字符串,并对u、l、d、s、other初始化 { printf("\\n%dst row:",i+1);gets(t[i]);u[i]=l[i]=d[i]=s[i]=other[i]=0...

乐至县15117702230: 怎样将一句英文按单词倒排(用C语言实现)? -
官绿三合: 1.查找字符串,计算前一个空格位置(第一个为0),然后将查找到的空格位置减去前一个空格位置即为单词长度,获取这个单词,存入数组,直到完毕.2.将数组反向输出即可

乐至县15117702230: c 语言如何在文件中提取单词,并按照英文词典顺序排序输出到另外一个文件 -
官绿三合: char c[1024]; //这是你的文章数组,大小有点小~ for(i=0;i<strlen(c);i++){ if(*(c+i)<'a'||*(c+i)>'z') *(c+i)=' '; } //这句的意思:不是'a'-'z'之间的字符就替换成空格 //这样的话 你给的例子abc#aba?axy34 hpz_hh 就变成 abc aba axy hpz_hh //之后的你自己做吧.. //给你小提示的话可以用strtok()库函数分离字母和空格 //strtok,strlen都是string.h里面的 可以查找学一学 //希望对你有点帮助

乐至县15117702230: 用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出 -
官绿三合: 用二维数组吧,比如定义a[10][10],开始读到a[0][10]里,遇到空格就换到a[1][10],依次类推.之后就是排序了,随你用什么方法.

乐至县15117702230: 怎么用C语言实现从文件中读取一段英文文章,将里面的字母,空格的个数显示出来,并将单词排序; -
官绿三合: 1.库函数 判断字符c 是否为: isalpha(c) 字母 isdigit(c) 数字 ispunct(c) 标点符号 islower(c) 小写字母 isupper(c) 大写字母2.对数组中元素排序 即字典序升序排序函数 qsort(s,n,sizeof(s[0]),cmp); int cmp(const void *a,const void *b) { return *(char *)a-*(char *)b; } 知识点够你用的 祝你成功!

乐至县15117702230: 怎么用C语言写个程序找出两个英文句子中相同的英文单词 -
官绿三合:[答案] 一个示范程序大致如下: #include #include #include int main(int argc, char **argv) { char s1[] = "This is test sentence, find all duplicated words."; char s2[] = "Just a test for finding duplication words."; size_t len_s1 =0; char *s_dup = NULL; char* ...

乐至县15117702230: 利用c语言输入一段文章,分别统计出其中有多少个单词,并按照单词长度由小到大次序输出各个单词.假定这 -
官绿三合: 按ctrl+d (即遇到文件结束符)结束输入.如果一次不行再多按一次.知道打印出结果为止.可以用管道测试,如:...

乐至县15117702230: 如何用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个单词,每一个单词不...

乐至县15117702230: C语言句子字母排序后行输出 -
官绿三合: #include <iostream> using namespace std; void main() { char ch[100]; cin.getline(ch,100); cout<<ch<<endl; int dex=0; while (ch[dex]!='\0') { if ((ch[dex]>'Z'||ch[dex]<'A')&&(ch[dex]>'z'||ch[dex]<'a')&&ch[dex]!=' ') { cout<<"ERROR at: "<<ch+dex<<endl...

乐至县15117702230: 如何用c语言将一个句子中的每个单词倒序,如I evol uoy 变为I love you,注意不用链表 -
官绿三合: #include <stdio.h>#include <string.h> void main() { int i,j,k; char str[200],str1[20]; gets(str); j=strlen(str); k=0; for( i=0; i<j; i++) { if(str[i]!=' ') str1[k++]=str[i]; else { str1[k]='\0'; strrev(str1); printf("%s ",str1); k=0; } } if(k>0) { str1[k]='\0'; strrev(str1); printf("%s\n",str1); } }

乐至县15117702230: C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词. -
官绿三合: #include #define n 100char *maxlenword(char statement[],char maxword[]) { int i = 0,j; char word[n]; maxword[0] = '\0'; for(i = 0; statement[i]; i++) { if(!isalpha(statement[i++])) continue; --i; j = 0; while(statement[i] && isalpha(statement[i])) word[j++] = ...

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