Сравнение символа и строки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

 #include <stdio.h>
# include <string.h>
# include <stdlib.h>
# include <conio.h>
# include <stdio.h>
# include <ctype.h>
 
int  main()
{
 int i, j, la, lb, ia,ib, n;
 char ch[]=".,!?;";
 char min, a[80], b[80];
 
//clrscr();
 printf("str A: ");
 gets(a);
 printf("\n");
 printf("str B: ");
 gets(b);
 
 la = strlen(a);
lb = strlen(b);
 
 ia = 0;   ib=0;    
 
 for (i=0; i<strlen(ch); i++)  
        {if (strchr(a, ch[i]) != 0)  
   ia = 1; }
   
   ib=0,   lb=strlen(b);
   
for (i=0; i<=lb-1; i++)
             { for (j=i+1; j<=lb; j++)
        if (b[i] == b[j]) ib = 1; }

 if ((ia == 1) && (ib == 0)) 
{
   
la=strlen(a);
 i=0;
for (i=0; i<=ib; i++)
    if (a[i]=ch ))      a[i++]=a[i];
    a[i]="\0";

    }  

printf("Obrabotannayastroka A: ");
puts(a);
getch();
}
как организовать удаление знаков препинания?
{
   
la=strlen(a);
 i=0;
for (i=0; i<=ib; i++)
    if (a[i]=ch ))      a[i++]=a[i];
    a[i]="\0";

    }

Решение задачи: «Сравнение символа и строки»

textual
Листинг программы
// ANSI C 99
 
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <assert.h>
 
#define KILL_CHARS L",.!?-:;"
 
int main(void) {
    wchar_t buf[BUFSIZ];
    
    assert( setlocale(LC_ALL, "ru_RU.UTF-8") );
    
    while ( printf("Строка: ") && fgetws(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        for ( wchar_t * ptr = wcspbrk(buf, KILL_CHARS); ptr; ptr = wcspbrk(ptr, KILL_CHARS) )
            wmemmove(ptr, ptr + 1, wcslen(ptr));
        printf("Без байды: %ls", buf);
    }
    
    return 0;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Определяется макрос KILL_CHARS, который содержит символы, которые необходимо удалить из строки
  3. Устанавливается локальная настройка на русский язык с использованием функции setlocale
  4. Создается буфер для хранения строки
  5. Проверяется корректность работы программы с помощью assert
  6. Организуется цикл, который считывает строку от пользователя и удаляет из нее запрещенные символы с помощью функции wcspbrk
  7. Выводится на экран очищенная от запрещенных символов строка
  8. Цикл продолжается до тех пор, пока пользователь не введет пустую строку
  9. Программа завершается с возвратом 0

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы