我是编程新手。我正在CS50中学习。我不确定如何将此代码定义为函数。我想让该函数返回key [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;
}
}
}
答案 0 :(得分:1)
例如,该函数可以通过以下演示程序中的以下方式查看。
#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;
}
答案 1 :(得分:0)
函数是带有“ in”和“ out”的代码块。您可以定义一个函数,以使用int key (int example){}
之类的语法从外部接收值,然后使用key(1);
将值传递给函数调用。
您的main()也是一个函数。 main()接收的值现在正在您的代码中使用。
您自己的函数(您可以在main()之外定义)可以通过多种方式完成,但是最简单的方法是将几乎所有相同的代码保留在main()中,同时弄清楚如何传输main() )接收到您的邮件中。