Мне нужно разбить строку на две части, первый столбец строки - это первая часть, а остальная часть строки - вторая часть.Первая часть должна быть сохранена в first_str
, а вторая часть в rest_str
.
Я использую sscanf
для достижения результата, мне удалось получить желаемый результат на следующем примере, когда sentence[]
не содержит буквальных символов \n
.
Короче говоря, мне нужно знать спецификатор формата до конца входной строки.До сих пор я был в состоянии заставить его работать до тех пор, пока не будет замечен \n
, но больше не могу его использовать.Может ли кто-нибудь помочь в чтении до конца строки, а не до \n
.
Вот уменьшенный пример:
#include <stdio.h>
int main ()
{
char sentence []="abc@xyz.com foo bar foobar\nhey there";
char first_str [200];
char rest_str [200];
//sscanf (sentence,"%s %99[^\0]",first_str,rest_str);
sscanf (sentence,"%s %99[^\n]",first_str,rest_str);
printf ("first column is %s\nevertyhing else is %s\n",first_str,rest_str);
return 0;
}
Желаемый результат:
first column is abc@xyz.com
evertyhing else is foo bar foobar\nhey there
ИЛИ
first column is abc@xyz.com
evertyhing else is foo bar foobar
hey there