#c #arrays #scanf
Вопрос:
Есть ли способ условно разграничить массив символов с помощью sscanf? Например
char arr[] = "abc deftghi";
char s1[4];
char s2[4];
char s3[4];
std::sscanf(arr, "%s %st%s",s1,s2,s3);
но в реальном примере я не знаю, разделено ли (или где) оно «» или «t», это может быть либо то, либо другое, поэтому мне нужно, чтобы это было что-то вроде
std::sscanf(arr, "%s " " or "t"...");
где он проверяет наличие «» или «t»
Комментарии:
1. Подожди секунду. Вытираю пыль со своей буквы » С » здесь.
scanf
также не должно быть никакого значения, какие пробелы используются. Позвольте мне написать немного тестового кода для взлома.2. Важен ли тип разделителя? Это должна быть вкладка или пробел? Есть ли какое-то значение для вкладки или пробела? Потому что, как я потихоньку вспоминал, мне все
scanf
равно .4. Примечание: Мне немного стыдно, что я написал код, чтобы проверить это, когда мог бы просто посмотреть его . Смотрите второй пункт в разделе Параметры
5. Более общим ответом было бы проанализировать строку с использованием a
std::regex
, что явно позволяетa|b
(a или b).