一个提取字符串的函数

kokblack 2005-12-05 09:42:23
例如ch1[]=("1234 666")如何将1234 和666分别放入到两个数组.或分出两个数字?谢谢!
...全文
265 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
csucdl 2005-12-06
  • 打赏
  • 举报
回复
sscanf 属于 scanf family 存在着安全问题
If copying takes place between strings that overlap, the behavior is undefined.
存在着为定义的行为
csucdl 2005-12-06
  • 打赏
  • 举报
回复
sscanf(ch1, "%d%d", &a, &b);
goodluckyxl 2005-12-06
  • 打赏
  • 举报
回复
#include <string.h>
#include <stdio.h>

char string[] = "1234 666";
char seps[] = " ";
char *token;

void main( void )
{
token = strtok( string, seps );
//here use atoi fun changing string to int
while( token != NULL )
{
printf( " %s\n", token );
token = strtok( NULL, seps );
}
}
快乐鹦鹉 2005-12-06
  • 打赏
  • 举报
回复
用sscanf函数就可以了。
handsomerun 2005-12-05
  • 打赏
  • 举报
回复
printf("%c",array[0][5]);为什么输出是6而不是预想的array[1][0]=6??

printf("array[1][0]=%c",array[0][5]);
kokblack 2005-12-05
  • 打赏
  • 举报
回复
printf("%c",array[0][5]);为什么输出是6而不是预想的array[1][0]=6??
kokblack 2005-12-05
  • 打赏
  • 举报
回复
扩展一下,字符串分割函数,比较通用的是什么?多谢!
handsomerun 2005-12-05
  • 打赏
  • 举报
回复
上面说错了,如果是0-9的数字
handsomerun 2005-12-05
  • 打赏
  • 举报
回复
isdigit()是判断那个字符是不是数字
如果是1-9的数字就返回非0,
所以用一楼的做法就是,判断是不是数字
如果是几个连续字符都是数字,就把它取出来
如果碰到不是数字
就停止,然后再取下一个数字,依次类推
cunsh 2005-12-05
  • 打赏
  • 举报
回复
int isdigit(int ch)
判断ch是不是数字.
cunsh 2005-12-05
  • 打赏
  • 举报
回复

char s[] = "1234 666";
char s1[10];
char s2[10];
sscanf(s,"%s%s",s1,s2);
pyrophile 2005-12-05
  • 打赏
  • 举报
回复
isdigit()什么函数?不懂,请详细一点。
happydivid 2005-12-05
  • 打赏
  • 举报
回复
晕,这题也出100分!
构成楼主要提取的字符串的元素只有数字是吗?
如果是那就用函数isdigit()
char array[2][10];
int i=0, j=0, k=0;
for (i=0; i<8; i++ )
(
while( isdigit(ch1[i]) )
{
array[k][j]=ch1[i];
i++; j++;
}
j=0; k++;
}
要扩展的话,楼主自己想办法,基本方法也就这样

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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