void tr_str(char s[], char news[]){
int c;
size_t k =0;
while ((c = getchar()) != EOF)
{
for(k=0; k < strlen(s);k++)
{
if(c == s[k])
{
c = news[k];
}
}
putchar(c);
}
}
Это моя функция перевода, которая в настоящее время принимает два аргумента из командной строки и использует эти буквы для переключения первого набора на второй набор. Я просто нашел проблему, когда она не работает, если два аргумента различной длины. Что должно произойти, если 1-й аргумент имеет длину 3 символа, а второй - длину 2 символа, второй аргумент получает третий символ, добавленный к нему, и он должен быть равен последнему символу, хранящемуся в нем. Пример: arg1 (a, b, c); арг2 (х, у); При использовании arg2 становится arg2 (x, y, y);Выполнение пользовательских функций tr.c
Благодарим за помощь.
Посмотрите на 'strstr()', 'strchr()', 'strspn()'? – EOF
спасибо за подсказку. – TheUnknown
Ни одна из этих функций не идеальна, так как вам действительно нужна функция, которая является 'size_t indexof (char * haystack, int needle)', но лучшее, что вы получаете, это 'char * strchr (char * haystack, int needle)', поэтому вам нужно вычислить индекс, указав указатели. – EOF