c - 在运行时从 argv[1] 中的字符生成字符串

标签 c string pointers

在这里学习一些 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是指针的指针,我只是不知道如何在运行时从它转到字符串。抱歉,如果这个问题有点幼稚。

谢谢!

最佳答案

argv 指向字符指针数组。每个字符指针都指向一个c字符串。

char* third_string = argv[2] ;

char second_char_of_third_string = argv[2][1] ;

extractCharacters() 应该采用字符指针,就像 concatenate() 一样。

关于c - 在运行时从 argv[1] 中的字符生成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24333726/

相关文章:

c - 在 C 中访问函数外部的结构变量

c++ - 从第三类更改所有类的对象

c - 使用接口(interface)的质数

将 uint32 转换为 char

java - 使用 hashCode() 测试字符串相等性

perl - 我们在Perl中有自动冠军吗?

c - (C/Windows) 无法卸载驱动程序

c - 实现堆栈和单链表的最佳方式

python - 在 python 中查找子字符串

c++ - 自动调用原始指针的自定义转换器 A* <-> B*