Вывести подстроку, расположенную между первым и вторым пробелом исходной - C (СИ)
Формулировка задачи:
здравствуйте, нужна ваша помощь.
Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.
Если не сложно, то с комментариями.. Спасибо
Решение задачи: «Вывести подстроку, расположенную между первым и вторым пробелом исходной»
textual
Листинг программы
char str[]="11111 22222 333333";
char *p1=strchr(str,' '); // первый пробел
char *p2=strchr(p1+1,' '); // второй пробел
if(p2!=NULL && p1!=NULL) // есть ли эти пробелы
{
p2[i]=0; // вместо 2 пробела ставим конец строки
printf("%s",(p1+1); // вывод второго слова
}
Объяснение кода листинга программы
В этом коде:
- Создается строка
strс текстом11111 22222 333333. - Используя функцию
strchr, ищется первый пробел в строкеstrи сохраняется в переменнойp1. - Используя функцию
strchr, ищется второй пробел в строкеstr, начиная с символа, следующего за первым пробелом, и сохраняется в переменнойp2. - С помощью условного оператора
ifпроверяется, что оба пробела существуют (то есть не равно NULL). - В строке
p2заменяется второй пробел на конец строки (символ0). - Используя функцию
printf, выводится второе слово (с символа, следующего за первым пробелом, до второго пробела) из строкиstr.