用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 13:39:38
用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出

用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出
用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出

用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 str1 is null or str1 is litter than str2
// return 1 when str2 is null or str2 is litter than str2
// return 0 when str1 is equal as str2
int compare_str(char* str1, char* str2)
{
 if(str1 == 0) return -1;
 if(str2 == 0) return 1;
 while ( *str1 && *str2)
 {
  if(*str1 > *str2)
  {
   return 1;
  }
  else if (*str1 < *str2)
  {
   return -1;
  }
  str1++;
  str2++;
 }
 if(*str1 > *str2)
 {
  return 1;
 }
 else if (*str1 < *str2)
 {
  return -1;
 }
 return 0;
}
void main()
{
 char str[200]={0};
 gets(str);
 int n = split_str(str);
 if(n < 1)
 {
  printf("input error!\n");
  return -1;
 }
 //printf("n=%d\n",n);
 char* a[n];//save pointer address
 int i;
 for(i=0;i<n;i++)//init the pointer array
  a[i]=0;
 int index = 0;
 int flag = 0;
 for(i=0;i<200 || !str[i];i++)
 {
  if(str[i] != ' ' && flag == 0)
  {
   a[index++] = &str[i];
   flag = 1;
  }
  else if(str[i] == ' ')
  {
   flag = 0;
   str[i]='\0';
   continue;
  }
 }
 int j;
 for(i=0;i<n;i++)
  for(j=i+1;j<n;j++)
   if(1 == compare_str(a[i], a[j]))
   {
    char* tmp;
    tmp = a[i];
    a[i] = a[j];
    a[j] = tmp;
   }
 for(i=0;i<n;i++)
  printf("%s\n",a[i]);
}

用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出 用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出 c语言编程 求一元二次方程的实数根.ax^2+bx+c=0,abc均由键盘读入. C语言编程: 先用一层循环判断某一个从键盘读入的整数是否为质数,在此基础上,再加上外层循环,找出规C语言编程:先用一层循环判断某一个从键盘读入的整数是否为质数,在此基础上,再加上外 C语言:从键盘读入一个整数Num,按从小到大的顺序依次输出所有满足条件的3位数:该数各位数字的立方和 C语言编程:从键盘上输入一个正方体的棱长,计算并输出这个正方体的表面积和体积2.编写程序:从键盘上输入一个正方体的棱长,计算并输出这个正方体的表面积和体积.要求:用一个子函 编程输出下列图形,行数从键盘读入 当n=5时,* *** ***** *** *图形************* 是Pascal语言 从键盘上读入一批以负数结束的正整数,输出最大数,c语言 C语言,从键盘读入一个正整数,统计该数的位数,并从低位到高位分别输出每一位.RT,使用do……while语句 C语言,求S=1/1!+1/2!+1/3!+…+1/N!求S=1/1!+1/2!+1/3!+…+1/N!并输出结果(显示时小数部分占16位,计算时要求从第1项开始往后累加).N为任意自然数(只考虑int型),从键盘读入.编程可用素材:printf(Please input C语言:请编写一个程序,从键盘读入两个整数a和n,计算并输出a+aa+aaa+...+aa...a(n个a)的值.非常感谢.急用! 怎么利用c语言来编程下面的问题补充的代码呢?要求利用函数或指针来编写从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号).例如,输入x为1234,则由1234分离 用C语言编程:从键盘输入N,输出一个由*组成的N行的等腰三角形 用C语言编程实现从键盘任意输入10个整数,统计其中奇数的个数,并计算这些奇数的和. 用C语言编程实现从键盘任意输入10个整数,统计其中奇数的个数,并计算这些奇数的和 从键盘上输入10个整数,求最大值和最小值急,是c语言编程题 C语言编程,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩 从键盘读入一个整数,判断它是奇数还是偶数