#include <stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
void Input ( char *str );
int Split_Count ( char *str,char **pStr );
int main(void)
{
char String[81]={0}, *pString[45];
int i=0, count;
Input(String);
count = Split_Count(String, pString);
printf("%d Words: ", count);
for (i=0; i<count-1; i++)
{
printf("%s-", pString[i]);
}
printf("%s", pString[count-1]);
putchar('\n');
return 0;
}
/* 请在这里填写答案 */
void Input ( char *str )
{
gets(str);
}
int Split_Count ( char *str,char **pStr )
{
int i,k=0,j=0;
for(i=0;str[i]!='\0';i++)
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
{
pStr[k][j++]=str[i];
}
else
{
if(j>0)
{
k++;
j=0;
}
}
}
return k;
}
PTA 分词并显示 为什么在PTA上是编译错误,具体怎么改
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注【以下回答由 GPT 生成】
#include <stdio.h> #include <string.h> // 添加这行代码以使用strcpy函数 void Input (char *str); int Split_Count (char *str, char **pStr); int main(void) { char String[81]={0}, *pString[45]; int i=0, count; Input(String); count = Split_Count(String, pString); printf("%d Words: ", count); for (i=0; i<count-1; i++) { printf("%s-", pString[i]); } printf("%s", pString[count-1]); putchar('\n'); return 0; } void Input (char *str) { gets(str); // gets函数不安全,建议使用fgets函数 } int Split_Count (char *str, char **pStr) { int i,k=0,j=0; for(i=0; str[i]!='\0'; i++) { if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) { pStr[k][j++]=str[i]; } else { if(j>0) { pStr[k][j]='\0'; // 在单词结束时添加字符串结尾符号 k++; j=0; } } } pStr[k][j]='\0'; // 在最后一个单词结束时添加字符串结尾符号 k++; // 将最后一个单词计入统计 return k; }【相关推荐】
- 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7508118
- 这篇博客你也可以参考下:PTA 习题2.2 数组循环左移(循环队列法与逆转法)
- 除此之外, 这篇博客: PTA 在一个数组中实现两个堆栈中的 输入样例: 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报