C语言有关的一道编程题,望大神帮忙
根据要求编写程序P795.C的指定部分:程序P795.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)...
根据要求编写程序P795.C的指定部分: 程序P795.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。 程序的功能是:一个长度不超过199的字符串,字符串中只含字母和空格,空格用于分隔单词。请将字符串中用空格分隔的单词在屏幕上输出来。要求用指针完成函数中各参数的传递与访问,自定义函数头和函数体中不得出现数组下标形式的表示法。提示:利用指针数组记录每个单词的开始位置,把字符串中单词结束后的空格改为'\0'。
程序的运行效果应类似地如图1所示,图1中的I come from china是从键盘输入的内容。
#include <stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
______________________________
int main(void)
{
char str[200], *pStr[101];
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[i]);
}
putchar('\n');
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */ 展开
程序的运行效果应类似地如图1所示,图1中的I come from china是从键盘输入的内容。
#include <stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
______________________________
int main(void)
{
char str[200], *pStr[101];
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[i]);
}
putchar('\n');
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */ 展开
1个回答
展开全部
#include<stdio.h>
int split(char*,char**);
int main(void)
{
char str[200], *pStr[101];
int i=0, count;
int n = 0;
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[i]);
}
putchar('\n');
return 0;
}
int split(char* str,char** pStr)
{
int i;
int j;
int count;
if(*str=='\0')
{
for(i=0;i<101;i++)
*(pStr+i) = 0;
return 0;
}
else if(*str!=' ')
{
*pStr = str;
j=1;
count = 1;
}
else
{
j=0;
count = 0;
}
i = 0;
while(*(str+i+1)!='\0')
{
if(*(str+i)==' '&& *(str+i+1)!=' ')
{
count++;
*(pStr+j) = str+i+1;
j++;
}
i++;
}
i = 0;
while(*(str+i+1)!='\0')
{
if(*(str+i)!=' ' && *(str+i+1)==' ')
*(str+i+1) = '\0';
i++;
}
return count;
}
int split(char*,char**);
int main(void)
{
char str[200], *pStr[101];
int i=0, count;
int n = 0;
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[i]);
}
putchar('\n');
return 0;
}
int split(char* str,char** pStr)
{
int i;
int j;
int count;
if(*str=='\0')
{
for(i=0;i<101;i++)
*(pStr+i) = 0;
return 0;
}
else if(*str!=' ')
{
*pStr = str;
j=1;
count = 1;
}
else
{
j=0;
count = 0;
}
i = 0;
while(*(str+i+1)!='\0')
{
if(*(str+i)==' '&& *(str+i+1)!=' ')
{
count++;
*(pStr+j) = str+i+1;
j++;
}
i++;
}
i = 0;
while(*(str+i+1)!='\0')
{
if(*(str+i)!=' ' && *(str+i+1)==' ')
*(str+i+1) = '\0';
i++;
}
return count;
}
追问
还有一题能帮我看下吗??
追答
发过来,但我不敢保证能做出来
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询