как заставить тело функции повторить в с - PullRequest
0 голосов
/ 02 июня 2018

Итак, я делаю эту программу, и я почти закончил.Однако, прежде чем я закончу, мне нужно заставить функцию body повторить n раз и напечатать этот ответ.Например, при повторной итерации строка 'duiolkjgvc' входит в эту функцию и затем становится 'fghiwuegfvw'.Или, если повторить дважды, fghiwuegfvw станет тем, что я кодировал в этой функции и так далее.

Надеюсь, это объяснение понятно, если не попросите меня уточнить.Любая помощь будет оценена.

Моя попытка (это довольно длинный код, поэтому я буду печатать только то, что имеет отношение к этому qs):


    void printString(String * s, Rules *r);

    int main(int argc, char * argv[]){
    ...
       printString(&s1, &r1);
    ....
}
    return 0;

void printString(String * s, Rules *r){
    if(strcmp(r->startString,p->nameReplace)==0){
          strcpy(p->newString,p->stringReplace); 
    }
}

, по сути, мне нужно повторить тело функции, которое называетсяprintString n раз

1 Ответ

0 голосов
/ 02 июня 2018

Это должно быть достигнуто простым циклом for:

for (int i = 0; i <= n; ++i)
    doSomething();

Более конкретный (хотя и надуманный) пример, демонстрирующий передачу и получение значений:

int addOneTo(int x) {
    return x + 1;
}
:
int val = 7;
printf ("3 added to %d is: ", val);
for (int i = 0; i < 3; ++i)
    val = addOneTo(val);
printf("%d\n", val);
...