在C中拆分多行字符串

在C中拆分多行字符串,c,string,split,multilinestring,C,String,Split,Multilinestring,如何在常量字符*数组中拆分多行字符串 这是输入字符串 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' 如何拆分此字符串?使用字符

如何在常量字符*数组中拆分多行字符串

这是输入字符串

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'
如何拆分此字符串?

使用字符数组*

#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;
}
字符串之间的换行符解析为空白,与空格或制表符处理相同。所以它相当于:

const char* str = "122.123,-38.789" "122.123,-39.78";
预处理器将其转换为

const char* str = "122.123,-38.789122.123,-39.78";
使用字符数组*

#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;
}
字符串之间的换行符解析为空白,与空格或制表符处理相同。所以它相当于:

const char* str = "122.123,-38.789" "122.123,-39.78";
预处理器将其转换为

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

如果不以某种方式用分隔符或其他东西分隔字符串,则无法做到这一点。按照您的操作方式,两个字符串都合并为一个字符串,因为没有分隔符,所以也无法返回。您是否可以控制
str
的声明?你能在结尾加一个换行符或其他分隔符吗<代码>“122.123,-38.789\n”,例如@BrianCain,不,我不能修改str。它由用户设置。我想输入一定被认为是无效的。这里有冲突。它是由用户设置的还是
const char*
?你能发布一些更接近真实代码的东西吗?如果你不以某种方式用分隔符或其他东西分隔字符串,那么就没有办法做到这一点。按照您的操作方式,两个字符串都合并为一个字符串,因为没有分隔符,所以也无法返回。您是否可以控制
str
的声明?你能在结尾加一个换行符或其他分隔符吗<代码>“122.123,-38.789\n”,例如@BrianCain,不,我不能修改str。它由用户设置。我想输入一定被认为是无效的。这里有冲突。它是由用户设置的还是
const char*
?你能发布一些更接近真实代码的东西吗?