как найти не алфавитно-цифровой в C - PullRequest
0 голосов
/ 22 июня 2011

я пытаюсь отделить не алфавитно-цифровую и буквенно-цифровую строку от C. Это мой текущий код, но если я использую его, он будет обнаруживать только буквенно-цифровые символы, тогда как для не алфавитно-цифровых он будет возвращать null.так я не могуопределить, по какому индексу все не алфавитно-цифровые значения.

    char data[] = "http://www.google.com";
    char key[]  = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    char *find;

    find = strpbrk(data,key);
    while(find != NULL){
        printf("%c",*find);
        find = strpbrk(find+1,key);        
    }

Вывод будет httpwwwgooglecom. Это то, что я частично хочу.я также пытаюсь найти, где все не алфавитно-цифровые в.

Ответы [ 2 ]

4 голосов
/ 22 июня 2011

Иногда легче сделать работу самостоятельно.И да, для конкретного случая A-Za-z0-9 вы должны использовать isalnum () вместо strchr ().

for(c=data;*c;c++)
{
  if (!strchr(key,*c))
   {
     // Do something with non-alpha
   }
   else
   {
      printf("%c",*c);
   }
}
4 голосов
/ 22 июня 2011

Посмотрите на семейство процедур C isalpha .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...