Замена букв в строке на заглавные - C (СИ) (149676)
Формулировка задачи:
Помогите пожалуйста разобраться.
написать программу, которая по введённой строке создаёт новую и заменяет все символы на символы в верхнем регистре, а для следующих символовделает такую замену:
• 'a', 'A' → '4'
• 'b', 'B' → '8'
• 'e', 'E' → '3'
• 'i', 'I' → '1'
• 'o',
'O' → '0'
• 's', 'S' → '5'
Для замены использовать таблицы.
Пример:
This stuff really works
TH15 5TUFF R34LLY W0RK5.
код:
при компиляции выдает
как исправить ?
#include <stdio.h> #include <string.h> #include <ctype.h> const char* TABLE[] = { "ABEIOS", "483105" }; int main(void) { char *a; char str[1000], *ptr; printf("%s\n", "Введите строку:"); for ( ptr = str; ptr; ++ptr ) { *ptr = toupper(*ptr); if ( a = strchr(TABLE[0], *ptr)); *ptr = (TABLE[1][a - TABLE[0]]); } printf("%s\n", str); }
2.c: In function ‘main’: 2.c:15:6: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if ( a = strchr(TABLE[0], *ptr)); ^
Решение задачи: «Замена букв в строке на заглавные»
textual
Листинг программы
if ( ( a = strchr(TABLE[0], *ptr) ) != NULL )
Объяснение кода листинга программы
- В данном коде используется функция
strchr
, которая ищет первое вхождение символа в строке. - Переменная
a
используется для хранения указателя на найденный символ. - Если функция
strchr
вернула неNULL
(то есть нашла символ), то значение переменнойa
будет равноNULL
плюс указатель на найденный символ. - Значение переменной
ptr
используется как аргумент для функцииstrchr
. - Переменная
TABLE[0]
представляет собой строку, в которой происходит поиск. - Если символ, на который указывает
ptr
, найден в строкеTABLE[0]
, то переменнаяa
будет содержать указатель на этот символ. - Если символ не найден, то переменная
a
будет равнаNULL
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д