Дано предложение. Удалить из каждого слова все повторяющиеся буквы, т.е. в каждом слове должны остаться только различные буквы.
Написала начало, не знаю как "удалить" символы
Код:
#include <stdio.h>
#include <string.h>
#include <Windows.h>
int main()
{
char str[80], str_new[80];
SetConsoleCP(1251);//включить кодировку Win1251 при вводе с консоли
SetConsoleOutputCP(1251);//включить кодировку Win1251 при выводе на консоли
int i, j, k, ks, ns;
printf("Введите предложение:n");
gets_s(str);
i = 0;
j = 0;
k = 0;
ns = 0;
ks = 0;
while (str[i] != '')//пока не конец строки выполняется цикл
{
while (str[i] == ' ')//пока встречается пробел перебираем символы
i++;
ns = i;//начало слова
while ((str[i] != ' ') || (str[i] != ''))//пока не встретится пробел или конец строки перебираем символы
i++;
ks = i - 1;//конец слова
for (j = ns; j < ks; j++)
for (k = j + 1; k <= ks; k++)
if (str[j] == str[k])//нужно осуществить копирование хвоста, удалить из k
#include <string.h>
#include <Windows.h>
int main()
{
char str[80], str_new[80];
SetConsoleCP(1251);//включить кодировку Win1251 при вводе с консоли
SetConsoleOutputCP(1251);//включить кодировку Win1251 при выводе на консоли
int i, j, k, ks, ns;
printf("Введите предложение:n");
gets_s(str);
i = 0;
j = 0;
k = 0;
ns = 0;
ks = 0;
while (str[i] != '')//пока не конец строки выполняется цикл
{
while (str[i] == ' ')//пока встречается пробел перебираем символы
i++;
ns = i;//начало слова
while ((str[i] != ' ') || (str[i] != ''))//пока не встретится пробел или конец строки перебираем символы
i++;
ks = i - 1;//конец слова
for (j = ns; j < ks; j++)
for (k = j + 1; k <= ks; k++)
if (str[j] == str[k])//нужно осуществить копирование хвоста, удалить из k
Код:
#include <stdio.h>
#include <ctype.h>
#include <locale.h>
#include <windows.h>
typedef unsigned char uchar;
void _delchr(char* s){
int c;
uchar* p;
uchar* x = (uchar*)s;
uchar* y = (uchar*)s;
while(*x){
if(isalpha(*y)){
p = y + 1;
c = toupper(*y);
while(isalpha(*p) && (toupper(*p) != c))
++p;
if(toupper(*p) != c)
++x;
} else
++x;
++y;
*x = *y;
}
}
int main(void){
char s[64] = "Арбалет, акула, около лабиринта. addddAa";
setlocale(LC_CTYPE, "Russian_Russia.1251");
/*
printf("Enter str: ");
fgets(s, 64, stdin);
fflush(stdin);
*/
_delchr(s);
CharToOemA(s, s);
puts(s);
getchar();
return 0;
}
#include <ctype.h>
#include <locale.h>
#include <windows.h>
typedef unsigned char uchar;
void _delchr(char* s){
int c;
uchar* p;
uchar* x = (uchar*)s;
uchar* y = (uchar*)s;
while(*x){
if(isalpha(*y)){
p = y + 1;
c = toupper(*y);
while(isalpha(*p) && (toupper(*p) != c))
++p;
if(toupper(*p) != c)
++x;
} else
++x;
++y;
*x = *y;
}
}
int main(void){
char s[64] = "Арбалет, акула, около лабиринта. addddAa";
setlocale(LC_CTYPE, "Russian_Russia.1251");
/*
printf("Enter str: ");
fgets(s, 64, stdin);
fflush(stdin);
*/
_delchr(s);
CharToOemA(s, s);
puts(s);
getchar();
return 0;
}