在这里学习一些C语法,并且我遇到了一些我觉得有点混乱的事情。 我正在尝试制作两个函数:
1)char* extractCharacters(char** input)
从main获取argv [1]并提取前两个字符(它们可以是任何可读的ascii字符)从中创建一个字符串。返回那个字符串。
2)char* concatenate(char* string1, char* string2)
获取上面的函数1返回的字符串,并将其与main提供的第二个输入字符串连接起来。
对于这个,我有:
char* concatenate(char* string1, char* string2)
{
char* concatenated = malloc(strlen(string1)+strlen(string2)+1);
strcpy(concatenated, string1);
strcat(concatenated, string2}
return concatenated
}
说到函数1,我理解argv
是一个指针的指针,我真的不知道如何在运行时从那里转到字符串。对不起,如果这个问题有点荒谬。
谢谢!
答案 0 :(得分:1)
argv
指向一个字符指针数组。每个字符指针指向一个c字符串。
char* third_string = argv[2] ;
char second_char_of_third_string = argv[2][1] ;
extractCharacters()
应该改为使用字符指针,就像concatenate()
。
答案 1 :(得分:0)
请尝试这个解决方案:
char* concatenate(char* string1, char* string2)
{
char* concatenated = (char*)malloc(strlen(string1)+strlen(string2)+1);
sprintf(concatenated, "%s%s", string1, string2);
return concatenated;
}
int main(char* argv[], int argc )
{
char string1[100];
char* string2 = "stice";
strncpy(string1, argv[1], 2);
char* string3 = concatenate( string1, string2);
}