我确信以前已经回答过这个问题,但我无法回答这些问题。我正在学习 C 入门课程,并且提供了一个头文件 cs50.h,其中包含字符串类型。所以虽然我一直在使用它,但我不太确定它是如何工作的。
我的目标是将argv[1][0]和argv[1][1] 处的字符转换为const char *variable。虽然我知道答案肯定涉及指针和地址,但我还没有找到成功的组合。我在这里问是希望有人可以用我自己的代码向我展示正确的方法,这样我就可以学习如何去做。
更新我试图从第二个字符(即不是文件名的第一个字符串)中获取前两个字符,因此argv[1][0]和argv[1][1]所以给定的输入将是一些东西就像这个 helloworld,我只想要 'h' 和 'e'。我不知道如何将 argv 数组中的 'h' 和 'e' 组合成一个 const char * 变量,这是我需要将其传递给另一个函数的请求格式。
#include <stdio.h>
#include <cs50.h>
#include <string.h>
int main(int argc, string argv[])
{
string saltget[2] = { &argv[1][0] , &argv[1][1] };
printf("%s\n", saltget);
}
argv[1][0]
是 type char
,所以如果你想用这个字符作为第一个字母构造一个字符串,它应该是:
char str [] = {argv[1][0], argv[1][1], '\0'};
请注意,将指针隐藏在 typedef 后面是非常糟糕的做法,因此您应该避免使用 cs50 库,因为它教导了这种糟糕的做法。他们将“字符串”定义为typedef char *string;
. 虽然指针隐藏很糟糕,但名称string
更糟,因为名称与 C++ 冲突,std::string
因此读者在看到代码时会有很多困惑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句