Функция заменяет символы строки из одного заданного алфавита на символы другого алфавита - C (СИ)
Формулировка задачи:
Функция заменяет символы строки из одного заданного алфавита на символы другого алфавита.
заменяет только первый символ, вместо остального - какая то лажа..
#include <stdio.h>
#include <conio.h>
void fun(char *s, char *s1, int dl);
int main () {
char s [26], s1[26];
int dl;
gets (s);
scanf ( " %d", &dl);
fun ( s, s1,dl);
puts(s);
getch();
return 0;
}
void fun (char *s, char *s1, int dl){
int i;
for ( *s=65, *s1=40, i=0; i<dl, ; i++, s1++ , s++){
*s=*s1;
}
*s='\0';
}Решение задачи: «Функция заменяет символы строки из одного заданного алфавита на символы другого алфавита»
textual
Листинг программы
int fun(char* str) {
while (*str != 0) {
if (*str >= 'A' && *str <= 'I') *str += '1' - 'A';
else if (*str >= 'a' && *str <= 'i') *str += '1' - 'a';
else return 1;
++str;
}
return 0;
}
Объяснение кода листинга программы
- Функция принимает в качестве аргумента указатель на строку (char*).
- Функция проходит по всем символам строки, пока не встретит нулевой символ.
- Для каждого символа строки выполняется проверка:
- Если символ принадлежит алфавиту от 'A' до 'I' (включительно), то он заменяется на соответствующий символ из алфавита от '1' до '9' (включительно), сдвинутый на единицу вперед.
- Если символ принадлежит алфавиту от 'a' до 'i' (включительно), то он заменяется на соответствующий символ из алфавита от '1' до '9' (включительно), сдвинутый на единицу вперед.
- Если символ не принадлежит ни одному из указанных алфавитов, то функция возвращает 1.
- После выполнения всех проверок функция возвращает 0.