2016-05-09 2 views
0

У меня проблема: я пытаюсь выполнять базовые операции с строкой (сравнивать, копировать, печатать на консоль), переданные программе в качестве аргумента. Эта строка содержит char '$' ex. "$ 1 $ 23 $ 45". Проблема в том, что я не могу отобразить его правильно, консоль просто показывает некоторые случайные символы - в этом случае на экран выводится «35».

Итак, я начинаю программу

./Lab8Dec $1$23$45 

, который делает следующее

printf("%s", argv[1]); 

Данный текст suposed для печати:

$1$23$45 

Но вместо того, чтобы это результат:

35 

Есть ли способ обработать «$» в переменной как обычный символ, а не как специальный?

+0

Параметр '$' интерпретируется вашей оболочкой, попробуйте './Lab8Dec«$ 1 $ 23 $ 45'' – fluter

ответ

2

$ не является специальным символом в C. Это, однако, символ, указывающий переменную в большинстве оболочек Linux. Вы можете защитить вашу форму ввода оболочки, используя одиночные кавычки:

./Lab8Dec '$1$23$45' 
+1

Наконец! Это было так очевидно, большое спасибо: D –

Смежные вопросы