gpt4 book ai didi

c - 使用具有不同分隔符的 token

转载 作者:行者123 更新时间:2023-11-30 16:16:37 24 4
gpt4 key购买 nike

我试图将所有整数放入一个数组中,并在它们之间使用分隔符

我期望看到什么

array[0][0] = 0
array[0][1] = 1
array[1][1] = 2
array[2][1] = 3
array[0][2] = 4

我尝试过reuse token = strtok( str, ";") 但它删除了字符“4”

#include <stdio.h>
#include <string.h>


int main()
{
char seps[] = " ,\t\n\r";
char *token;
char str[1000] = "0,1;2;3,4";
int kk=0;
int array[3][10];

token = strtok( str, seps );
while(1){
sscanf(token,"%d",&(array[0][kk]));
printf("Print Token %d\n",array[0][kk]);
//If token has ; move to next place in 1st array
token = strtok( NULL, seps );
kk++;
if (token==NULL)
break;
}

return 0;
}

最佳答案

并非所有分隔符都包含在数组 seps 中。

while 循环也应该这样写

token = strtok( str, seps );
while( token != NULL )
{
// ...
++kk;
token = strtok( NULL, seps );
}

这是一个演示程序

#include <stdio.h>
#include <string.h>

int main( void )
{
const char seps[] = " ;,\t\n\r";
char *token;
char str[1000] = "0,1;2;3,4";
int array[3][10];

size_t i = 0;
token = strtok( str, seps );

while ( token != NULL )
{
sscanf( token, "%d", &array[0][i] );

printf( "%d ", array[0][i] );

++i;

token = strtok( NULL, seps );
}

return 0;
}

它的输出是

0 1 2 3 4 

关于c - 使用具有不同分隔符的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56527897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com