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);
Спасибо за вашу помощь.
strstr()
,strchr()
,strspn()
? - person EOF   schedule 05.02.2015size_t indexof(char *haystack, int needle)
, но лучшее, что вы получаете, этоchar *strchr(char *haystack, int needle)
, поэтому вам нужно вычислить индекс, вычитая указатели. - person EOF   schedule 05.02.2015