Как я могу определить и вызвать этот код как функцию? - PullRequest
0 голосов
/ 16 июня 2019

Я новичок в программировании. Я учусь на CS50. Я не уверен, как определить этот код как функцию. Я хочу, чтобы функция возвращала ключ [n]. И как вызвать функцию?

#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, string argv[])
{

    int n = strlen(argv[1]);
    int key[n];
    int k =0;

    for( int i = 0; i < strlen(argv[1]); i++)
    {
        if(islower(argv[1][i]) != 0)

        {
            for(int j = 97; j < argv[1][i]; j++)
            {
                k++;
            }
            key[i] = k;
            k = k*0;
        }

        if(isupper(argv[1][i]) != 0)
        {
            for(int j = 65; j < argv[1][i]; j++)
            {
                k++;
            }
            key[i] = k;
            k = k*0;
        }
    }


}

Ответы [ 2 ]

1 голос
/ 16 июня 2019

Функция может выглядеть, например, следующим образом, как показано в демонстрационной программе ниже.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int * f( const char *s )
{
    int *key = NULL;

    size_t n = strlen( s );

    if ( n != 0 && ( key = calloc( n, sizeof( int ) ) ) != NULL )
    {
        for ( size_t i = 0; i < n; i++ )
        {
            unsigned char c = s[i];

            if ( islower( c ) ) key[i] = c - 'a';
            if ( isupper( c ) ) key[i] = c - 'A';
        }
    }

    return key;
}

int main( int argc, char * argv[] ) 
{
    if ( argc == 2 ) 
    {
        int *key = f( argv[1] );
        if (key != NULL)
        {
            // some other code
            free( key );
        }
    }

    return 0;
}
0 голосов
/ 16 июня 2019

Функция - это блок кода с "in" и "out".Вы определяете функцию для получения значений извне с помощью синтаксиса, подобного int key (int example){}, и передаете значения своему вызову функции с помощью key(1);.

. Ваш main () также является функцией.Значения, которые получает main (), используются в вашем коде прямо сейчас.

Ваша собственная функция (которую вы определяете вне main ()) может быть выполнена разными способами, но проще всего было бы просто сохранитьпочти весь один и тот же код в main (), пока вы выясняете, как перенести то, что main () получил в ваш.

...