输入英文字符串,判断单词的个数,并输出
本帖最后由 无情修罗 于 2015-3-27 15:44 编辑#include <stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
int main(void)
{
char str, *pStr;
int i=0, count;
printf("Please input a string: ");
gets(str);
count = split(str,pStr);
printf("\n%d Words: ", count);
for (i=0; i<count; i++)
{
printf("%s-", pStr);
}
putchar('\n');
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */上面的代码,不能改,
根据要求编写程序P795.C的指定部分:
程序P795.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。
程序的功能是:一个长度不超过199的字符串,字符串中只含字母和空格,空格用于分隔单词。请将字符串中用空格分隔的单词在屏幕上输出来。要求用指针完成函数中各参数的传递与访问,自定义函数头和函数体中不得出现数组下标形式的表示法。提示:利用指针数组记录每个单词的开始位置,把字符串中单词结束后的空格改为'\0'。
程序的运行效果应类似地如图1所示,图1中的Icome from china是从键盘输入的内容。
这是题目
Please input a string: Icome from china
4 Words: I-come-from-china-
这是结果?
#include <stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
int split(char str1[], char *psrt1[]);
int main(void)
{
char str, *pStr;
int i=0, count;
printf("Please input a string: ");
gets(str);
count = split(str, pStr);
printf("\n%d Words: ", count);
for (i=0; i<count; i++)
{
printf("%s-", pStr);
}
putchar('\n');
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int split(char str1[], char *psrt1[])
{
int k=0,i=0;
for(;; )
{
if(str1=='\0') break;
if(str1!=' ')
{
psrt1=&str1;
i++;
for(;;)
{
k++;
if(str1==' ')
{
str1=0;
k++;
break;
}
if(str1==0) break;
}
}
if(str1==' ')
{
k++;
}
}
return i;
} 可以参考下面的代码,这是判断输入几个单词的代码,结果是输出单词的个数。
#include<stdio.h>
int strwordcount(char p)
{
int i=0;
int count=0;
if(p==' ')
i++;
for(i=1;i<20;i++)
{ if(p==' '&&p!=' ')
count++;
}
return count+1;
}
void main()
{
int c;
char p;
gets(p);
c=strwordcount(p);
printf("%d\n",c);
} 如何区分,字符串中的,字符串和单词? haiouda 发表于 2015-3-27 22:36
如何区分,字符串中的,字符串和单词?
字符串:dshfkas sadjflasjs adk
结果是4个单词 无情修罗 发表于 2015-3-28 16:09
字符串:dshfkas sadjflasjs adk
结果是4个单词
你的意思是,输入的字符串中,凡是用空格相互(前后)隔开的就是单词了?
如果是那样,只要数字符串的的空格数,就可以知道,有多少个单词了! haiouda 发表于 2015-3-28 18:04
你的意思是,输入的字符串中,凡是用空格相互(前后)隔开的就是单词了?
如果是那样,只要数字符串的的 ...
就是这样判断,但是要写个函数,首先在函数里面,将单词存放到指针数组中,然后返回个数,再输出,要求不能改变已经有了的代码,且结果要与题目一样的要求
本帖最后由 haiouda 于 2015-3-28 20:12 编辑
这样子的,回复,怎么删除????
本帖最后由 haiouda 于 2015-3-28 20:08 编辑
本帖最后由 无情修罗 于 2015-3-29 09:58 编辑
haiouda 发表于 2015-3-28 20:08
可以运行
无情修罗 发表于 2015-3-29 09:59
可以运行
拿 钱 来 :ton:
页:
[1]