Мне нужно заменить некоторые символы несколькими символами (строка), но я застрял. Этот код работает для замены одного символа на другой, но если замена представляет собой несколько символов, результат беспорядочен.заменить char на строку
Вот код, который я до сих пор:
char input[50];
char output[150];
int i;
printf("Enter your text: ");
fgets(input, 50 , stdin);
for (i = 0; input[i] != '\0'; i++){
switch (input[i]){
case 'a': output[i]= '4'; break;
case 'd': output[i]= '|)';break;
case 'e': output[i]= '3'; break;
case 'f': output[i]= '|='; break;
case 'u': output[i]= '|_|'; break;
case 'w': output[i]= '\|/'; break;
/* REST OF THE ALPHABET
INTENTIONALLY SUPPRESSED*/
}
}
printf("Your new text is: %s", output);
return 0;
Как было предложено dasblinkenlight, я поставил еще один индекс для вывода, что работал очень хорошо, но я получаю два дополнительных символов в конце вывода текст ... откуда берутся эти символы?
Это пример:
Введите текст: afedef Ваш новый текст: 4 | = 3 |) 3 | = ■ (
скажем, строка представляет собой ряд водяных масел, завернутых в коробки. если вы хотите вытащить арбуз и заменить его другим, нет проблем. но если вы хотите заменить один водяной микс на 3, вам нужно каждый раз добавлять по 2 коробки. в нашем примере байт - это поле, а символ - водяной микс. –
Не нужно использовать фрукты. Я понял это из примеров, которые я видел. Итак, я попытался добавить «пробелы» к выходному индексу, но это не сработало. –
Пожалуйста, * не пытайтесь * наполнить свой код в скромное поле комментариев. Просто отредактируйте свой пост и добавьте к нему соответствующую информацию. – usr2564301