很简单!你试试?

mfamous 2003-03-26 04:24:13
做这样一个功能:用户打回车就把前面的所有打的字符串赋给各个指针数组,字符串间以空格间隔;

程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char* x[2];//我这里只定义了两个指针数组;
char y[]="\n";
x[0]="a";

for(i=0;(strcmp(x[i],y))!=0;i++)//与回车比较,如果是回车则退出循环
{
scanf("%s",x[i]);//scanf如果遇到空格那么后面一个自然会被赋予之后的指针数组,我是这么想的,只到回车退出
}
for(i=0;(strcmp(x[i],y))!=0;i++)
{
puts(x[i]);
}
return 0;
}

如果哪位高手可以写出同样的功能,同样不甚感激
以上代码有些问题,希望能够有谁看一下怎么修改,和哪里有出入,或者其他解题思想
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yatuor 2003-03-26
  • 打赏
  • 举报
回复
char *token;
char seps[] = " ,\t\n";
token=strtok(ch,seps); //ch is the source string
GetListCtrl().InsertItem(0,token);
for(int i=1;token != NULL;i++)
{
token=strtok(NULL,seps);
//把token赋给数组
}
yuanhen 2003-03-26
  • 打赏
  • 举报
回复
第二个while错了
mfamous 2003-03-26
  • 打赏
  • 举报
回复
你所说的这两个标准c函数我没有碰到过,能否给我详细函数说明,你是怎么找到的,另外这是不是c++的函数?
我还有一种做法,但是没有通过,能否劳驾一试,万分感谢!
代码:#include <stdio.h>
#include <string.h>
int main()
{
int i=0,j=0;
char h='d';
char a[50];
char x[2][5];
char* p;

gets(a);
p=strchr(a,h);
while(*p!='\0')
{
x[i][j]=*(p++);
j++;
if(*p==' ')
{
while(*p=' ')
{
++p;
}
i=1;
j=0;
}
}

printf("%s",x[0],x[1]);
return 0;
}
lqqchen2003 2003-03-26
  • 打赏
  • 举报
回复
用cin.getline(char *buf, LENGTH)读入一行文本,然后
用strtok(char *s1, const char *s2)来分解这行文本。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧