Как поместить выводимые данные с одной переменной в другую? - C (СИ)
Формулировка задачи:
Здравствуйте!
При изучении си появился вопрос
как поместить выводимые данные с одной переменной в другую?
вот пример кода
#include <stdio.h>
int main(int argc, const char * argv[])
{
int c ;
while ((c=getchar())!='\n')
{
{ if ( c==' ')
putchar(c);
while (c==' ')
c= getchar();
}
putchar(c);
}
return 0;
}Решение задачи: «Как поместить выводимые данные с одной переменной в другую?»
textual
Листинг программы
#include <stdio.h>
int main () {
int c,k=0; char s[80];
while ((c=getchar())!='\n') {
if ( c==' ') s[k++]=c;
while (c==' ') c=getchar();
s[k++]=c;
}
s[k]='\0';
puts(s);
return 0;
}
Объяснение кода листинга программы
В этом коде программа считывает строку с помощью ввода с клавиатуры, затем разбивает эту строку на отдельные слова и выводит каждое слово в новой строке. Вот список действий, которые выполняет код:
- Объявляет две переменные типа int — c и k, и одну переменную типа char — s.
- Инициализирует переменную k значением 0.
- Входит в цикл while, который продолжается до тех пор, пока не будет считыван символ новой строки.
- Внутри цикла считывает следующий символ с клавиатуры и сохраняет его в переменной c.
- Если считанный символ является пробелом, то код сохраняет этот символ в массиве s[k] и увеличивает значение переменной k на 1.
- Если считанный символ не является пробелом, то код продолжает считывать следующие символы до тех пор, пока не встретит пробел, и сохраняет последний считанный символ в массиве s[k] и увеличивает значение переменной k на 1.
- После окончания цикла, код добавляет символ новой строки в конец массива s и сбрасывает значение переменной k на 0.
- Выводит массив s на экран.
- Возвращает 0, чтобы указать, что программа успешно завершилась.