Простой вопрос о printf и C. Печать символов строки один за другим - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть странная строка, которую я хочу проверить, печатая ее символы один за другим. Как это можно сделать?

Я беспокоюсь, если в нем есть какие-то специальные символы, которые могут помешать его печати. Можно ли им «сбежать»?

Ответы [ 3 ]

4 голосов
/ 30 ноября 2010

Вы можете перебрать строку, печатая символы по одному, и условно выбрать печать символа или escape-последовательности:

char *str, // the original string
     *tmp;
for(tmp = str; *tmp; tmp++)
  {
    printf((iscntrl(*tmp) ? "%02x\n" : "'%c'\n"), *tmp);
  }

Печатает по одному символу в строке, контрольные символы печатаются в шестнадцатеричном формате.

1 голос
/ 26 января 2011
#include<stdio.h>
main()
{
    int i, count=0;
    char c[30];
    printf("Enter a Char string:");
    scanf("%s", &c[i]);
    for(count=0; count<c[30]; )
    {
        printf("%c", c[i]);
        count=+2;
    }
    return 0;
}
1 голос
/ 30 ноября 2010

Альтернативный способ просмотра специальных символов:

./a.out | hexdump -C

hexdump

...