鱼C论坛

 找回密码
 立即注册
查看: 9832|回复: 11

输入英文字符串,判断单词的个数,并输出

[复制链接]
发表于 2015-3-27 14:13:31 | 显示全部楼层 |阅读模式
30鱼币
本帖最后由 无情修罗 于 2015-3-27 15:44 编辑
  1. #include <stdio.h>

  2. /* userCode(<80字符): 自定义函数之原型声明 */


  3. int main(void)
  4. {
  5.         char str[200], *pStr[101];
  6.         int i=0, count;

  7.         printf("Please input a string: ");
  8.         gets(str);

  9.         count = split(str,  pStr);
  10.         printf("\n%d Words: ", count);
  11.         for (i=0; i<count; i++)
  12.         {
  13.                 printf("%s-", pStr[i]);
  14.         }
  15.         putchar('\n');

  16.         return 0;
  17. }

  18. /* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
复制代码
上面的代码,不能改,
根据要求编写程序P795.C的指定部分:
  程序P795.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理
  程序的功能是:一个长度不超过199的字符串,字符串中只含字母和空格,空格用于分隔单词。请将字符串中用空格分隔的单词在屏幕上输出来。要求用指针完成函数中各参数的传递与访问,自定义函数头和函数体中不得出现数组下标形式的表示法。提示:利用指针数组记录每个单词的开始位置,把字符串中单词结束后的空格改为'\0'。
  程序的运行效果应类似地如图1所示,图1中的I  come    from china是从键盘输入的内容。

这是题目

Please input a string: I  come    from china

4 Words: I-come-from-china-

这是结果?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-27 14:13:32 | 显示全部楼层
  1. #include <stdio.h>

  2. /* userCode(<80字符): 自定义函数之原型声明 */

  3. int split(char str1[], char *psrt1[]);

  4. int main(void)
  5. {
  6.             
  7.         char str[200], *pStr[101];
  8.         int i=0, count;

  9.         printf("Please input a string: ");
  10.         gets(str);

  11.         count = split(str, pStr);
  12.         printf("\n%d Words: ", count);
  13.         for (i=0; i<count; i++)
  14.         {
  15.                 printf("%s-", pStr[i]);
  16.         }
  17.         putchar('\n');

  18.         return 0;
  19. }

  20. /* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */


  21. int split(char str1[], char *psrt1[])
  22. {
  23.        
  24.         int k=0,i=0;
  25.        
  26.        
  27.         for(;; )
  28.         {
  29.                 if(str1[k]=='\0') break;
  30.                
  31.                 if(str1[k]!=' ')
  32.                 {
  33.             psrt1[i]=&str1[k];
  34.                         i++;
  35.                        
  36.                         for(;;)
  37.                         {                       
  38.                                 k++;
  39.                                 if(str1[k]==' ')
  40.                                 {
  41.                                         str1[k]=0;       
  42.                                         k++;
  43.                                         break;
  44.                                 }
  45.               if(str1[k]==0) break;
  46.                                
  47.                         }
  48.                
  49.                 }

  50.        
  51.             if(str1[k]==' ')
  52.                 {
  53.                         k++;
  54.                 }
  55.                
  56.                
  57.         }
  58.        
  59.        
  60.         return i;
  61. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-27 17:28:06 | 显示全部楼层
可以参考下面的代码,这是判断输入几个单词的代码,结果是输出单词的个数。

  1. #include<stdio.h>
  2. int strwordcount(char p[20])
  3. {
  4. int i=0;
  5. int count=0;

  6. if(p[0]==' ')
  7. i++;
  8. for(i=1;i<20;i++)
  9. { if(p[i]==' '&&p[i-1]!=' ')
  10.   count++;
  11. }
  12. return count+1;
  13. }

  14. void main()
  15. {
  16. int c;
  17. char p[20];
  18. gets(p);
  19. c=strwordcount(p);
  20. printf("%d\n",c);
  21. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-27 22:36:11 | 显示全部楼层
如何区分,字符串中的,字符串和单词?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-28 16:09:13 | 显示全部楼层
haiouda 发表于 2015-3-27 22:36
如何区分,字符串中的,字符串和单词?

字符串:dshfkas            sadjflasj  s   adk  

结果是4个单词
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-28 18:04:15 | 显示全部楼层
无情修罗 发表于 2015-3-28 16:09
字符串:dshfkas            sadjflasj  s   adk  

结果是4个单词

你的意思是,输入的字符串中,凡是用空格相互(前后)隔开的就是单词了?
如果是那样,只要数字符串的的空格数,就可以知道,有多少个单词了!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-28 18:12:41 | 显示全部楼层
haiouda 发表于 2015-3-28 18:04
你的意思是,输入的字符串中,凡是用空格相互(前后)隔开的就是单词了?
如果是那样,只要数字符串的的 ...

就是这样判断,但是要写个函数,首先在函数里面,将单词存放到指针数组中,然后返回个数,再输出,要求不能改变已经有了的代码,且结果要与题目一样的要求
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-28 19:51:12 | 显示全部楼层
本帖最后由 haiouda 于 2015-3-28 20:12 编辑
  1. 这样子的,回复,怎么删除????
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-28 19:54:00 | 显示全部楼层
本帖最后由 haiouda 于 2015-3-28 20:08 编辑



复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-29 09:50:34 | 显示全部楼层
本帖最后由 无情修罗 于 2015-3-29 09:58 编辑


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-29 09:59:56 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-29 20:50:02 | 显示全部楼层

拿 钱 来 :ton:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 10:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表