Переделать инициализацию cha с помощью функции gets - C (СИ)
Формулировка задачи:
#include "stdafx.h"
#include "string.h"
#define n 5
int main(void)
{
char s[n][9]={"abcdfd","fdfhdf","acdf","acdf","gsdfre"};
char *pch;
for(int i=0;i<n;i++) {
pch = strtok (s[i], " ");
while (pch != NULL)
{
if (pch == strstr(pch, "abc") || pch == strstr(pch, "ab") || pch == strstr(pch, "a"))
printf ("Slovo %s\n", pch);
pch = strtok (NULL, " ");//берет следующий символ
}
}
return 0;
}Решение задачи: «Переделать инициализацию cha с помощью функции gets»
textual
Листинг программы
for(i = 0; i < n; i++)
{
gets(s[i]);
pch = strtok (s[i], " ");
//...
}
Объяснение кода листинга программы
В этом коде используется функция gets для инициализации переменной cha. Предполагается, что вводится несколько строк, и каждая строка содержит числовую информацию, разделенную пробелами. Вот список действий, которые происходят в коде:
- Переменная i инициализируется нулем.
- Цикл while выполняется до тех пор, пока i меньше n.
- В каждой итерации цикла, функция gets используется для чтения строки в переменную s[i].
- Затем, функция strtok используется для разделения строки на отдельные элементы, используя пробел в качестве разделителя.
- Первый элемент (число) извлекается и сохраняется в переменную pch.
- Затем, выполняется дополнительный код, который не виден в данном отрывке.
- После завершения цикла, переменная i увеличивается на единицу.
- Цикл продолжается до тех пор, пока все строки не будут прочитаны. Код не содержит явных операций ввода или вывода, поэтому его можно считать чистым.