В C, как вы фильтруете определенные символы в строке? - PullRequest
0 голосов
/ 16 октября 2018

Я хотел бы быть уверен, что моя строка (которая набирается пользователем) получает только алфавит и эти специальные символы (-, ,_,,) в ней.Как это было бы возможно в C?Заранее спасибо!

1 Ответ

0 голосов
/ 16 октября 2018

Вдохновение из Фильтрация символа из строки в комментариях C и @ FiddlingBits , вот возможное решение для сохранения алфавита и нужных символов:

#include <ctype.h>
#include <string.h>

void filter_chars(const char *string, char *result, const char *keep)
{
    int bad, j = 0;
    int nkeep;
    nkeep = (int) strlen(keep);
    for (int i = 0; string[i] != '\0'; i++)
    {
        if (isalpha(string[i]))
        {
            result[j++] = string[i];
            continue;
        }
        for (int k = 0; k < nkeep; k++)
            if (string[i] == keep[k])
            {
                result[j++] = string[i];
                break;
            }
    }
    result[j] = '\0';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...