Поменять местами первую и последнюю букву слова - C (СИ)
Формулировка задачи:
Поменять местами первую и последнюю букву слова
помогите исправить
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main()
- {
- char c[1000], s[1000],sl,sn=" ";
- int i;
- printf("vvedit ryadok");
- gets(s);
- for (i=0 ;i<=strlen(s); i++)
- {
- if (s[i]!=" ")
- sl=sl+s[i];
- else
- if (strlen(sl)>0)
- {
- c=sl[strlen(sl)];
- sn=sn+sl[strlen(sl)]+strncopy(sl,2,strlen(sl)-2)+sl[1]+" ";
- sl="";
- }
- printf("s=%s",sn);
- }
- return 0;
- }
Решение задачи: «Поменять местами первую и последнюю букву слова»
textual
Листинг программы
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- int main () {
- char *token, buf[81],*separators = "\t,.:!? ";
- puts ("Enter the text");
- gets(buf);
- token = strtok(buf, separators);
- while(token != NULL) {
- int len=strlen(token);
- char c=token[len-1];
- token[len-1]=token[0];
- token[0]=c;
- printf ("%s ",token);
- token = strtok(NULL, separators);
- }
- getchar(); return 0;
- }
Объяснение кода листинга программы
В этом коде:
- Объявляются две строки:
buf
(буфер) иseparators
(разделители). - Пользователю предлагается ввести текст.
- Введённый текст сохраняется в буфере
buf
. - Далее, используя функцию
strtok
, код начинает разбиение строки на токены (слова). Разделителями служат пробел, табуляция, запятая, точка, двоеточие, восклицательный и вопросительный знаки. - В цикле, пока не будет достигнут конец строки (т.е. не будет найден последний токен), код меняет местами первую и последнюю букву каждого токена и выводит его на экран.
- После окончания ввода с клавиатуры, код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д