Добавить условие на вывод ошибки, если нет пробела в строке - C (СИ)
Формулировка задачи:
Подскажите , пожалуйста, как добавить условие, чтобы выводило ошибку, если нет пробела в строке??
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main()
{
char stroka1[255]="";
puts("Vvedite stpoky:");
gets(stroka1);
int i,n=0,k=0,l=strlen(stroka1);
for(i=1;i<l;i++)
if(stroka1[i]==' ')
{
if(n==0)
n=i;
k=i;
} // цикл поиска положения первого и последнего пробела в stroka1
strncpy(stroka1,strncat(strncat(strncat(stroka1,stroka1+n,k-n)+k+1,stroka1+n,1),stroka1,n),l+1);
// функция, меняющая местами первое и последнее слова в строке stroka1
puts("\nOtvet:");
puts(stroka1);
getch();
}Решение задачи: «Добавить условие на вывод ошибки, если нет пробела в строке»
textual
Листинг программы
while (!isspace(*psz) && *psz != '\0')
str1[i++] = *psz++;
if (!isspace(*psz)) {printf("Net probelov"); getchar(); return 1;}
Объяснение кода листинга программы
- В коде представлен фрагмент программы на языке C.
- Фрагмент кода отвечает за добавление условия на вывод ошибки, если нет пробела в строке.
- В первой строке кода используется оператор while, который проверяет условие: «!isspace(psz) && psz != '\0'».
- Переменная «psz» содержит указатель на текущий символ в строке.
- Условие оператора while проверяет, является ли текущий символ пробелом или нет («!isspace(*psz)»).
- Если текущий символ не пробел, то он добавляется в строку «str1» с помощью оператора присваивания и инкремента переменной «i» («str1[i++] = *psz++;»).
- Если после цикла while остается не пробельный символ, то выполняется блок кода, который включает в себя функцию printf для вывода сообщения об ошибке и функцию getchar для получения символа от пользователя, а затем возвращается значение 1.
- Сообщение об ошибке, которое выводится на экран, содержит текст
Net probelov.