在C中拆分多行字符串

时间:2016-03-17 04:16:06

标签: c string split multilinestring

如何在const char *数组中拆分多行字符串。?

这是输入字符串。

const char* str = "122.123,-38.789"
                  "122.123,-39.78";

我需要从中获得两个字符串。

str1 = "122.123,-38.789";

str2 = "122.123,-39.78";

的输出
printf("string='%s'", str)

string='122.123,-38.789122.123,-39.78'

如何拆分此字符串?

1 个答案:

答案 0 :(得分:4)

使用char *

数组
#include <stdio.h>
const char* str[] = { "122.123,-38.789" ,  "122.123,-39.78" };

int main(){
  printf("%s\n%s\n",str[0],str[1] );
  return 0;
}

编译器如何理解您的代码:

C预处理器将字符串放在一起,

const char* str = "122.123,-38.789"
                  "122.123,-39.78";

字符串之间的换行符被解析为空格,与空格或制表符相同。所以它相当于:

const char* str = "122.123,-38.789" "122.123,-39.78";

预处理器转换为

const char* str = "122.123,-38.789122.123,-39.78";