Поменять местами первую и последнюю букву слова - 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, код начинает разбиение строки на токены (слова). Разделителями служат пробел, табуляция, запятая, точка, двоеточие, восклицательный и вопросительный знаки. - В цикле, пока не будет достигнут конец строки (т.е. не будет найден последний токен), код меняет местами первую и последнюю букву каждого токена и выводит его на экран.
- После окончания ввода с клавиатуры, код завершается.