繁体   English   中英

如何在第一个空格处分割字符串

[英]How to split a string at the first space

我有这样一个数字字符串:160 01 11 12 33 44 44 ...,我想从头开始拆分到第一个空格,如下所示:160 | 01 11 12 33 44 44 ....例如,我可以将字符串放在数组的第一个空格之前,并将字符串放在其他数组的后面。

arr1 [] ='160'

arr2 [] ='01 11 12 33 44 44 ...'

我正在从文件中提取这种类型的字符串,所以我的代码是这样的:

int le_ficheiro(char* filename) {
FILE *ficheiro=fopen(filename,"r");
size_t len=0;
char *line=NULL;
ssize_t read;
if(ficheiro==NULL) {
    exit(EXIT_FAILURE);
}



while((read = getline (&line, &len,ficheiro))!=-1)   //read line by line
{
    printf("Retrieved line of length %zu:\n",read);
    printf("%s\n",line);
    printf("Aqui : %c\n",line[0]);

}
fclose(ficheiro);
if(line)
    free(line);
exit(EXIT_SUCCESS);

我需要一些帮助。

您可以使用strtok拆分字符串。 这是手册页

在这种情况下,找到第一个空格并分割就足够了。

char *s1;
char *s2;
char *sp;

sp = strchr(line, ' ');
if (!sp) { exit(EXIT_FAILURE); }

s1 = strndup(line, sp-line); /* Copy chars until space */
s2 = sp+1; /* Skip the space */

...

free(s1);
const char* str;
char first[5] ,rest[50]; 
sscanf(str, "%d %s", first,rest);
int first_i = atoi(first);

要么

double first_d = atof(first);

这也应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM