gpt4 book ai didi

C 中的 cmd 参数转换为 char**

转载 作者:行者123 更新时间:2023-11-30 19:47:19 25 4
gpt4 key购买 nike


我正在尝试执行以下操作:
给定一个带有 cmd 参数的程序,我试图将 argv 中的某些字符串存储到 char** 中,但我是 C 新手,我我真的不确定如何做到这一点并不断出现段错误。我该怎么做?


示例:
程序运行执行“Program arg2 arg3 arg5”行
现在我想将arg2arg5保存到一个新的字符串数组中,让我们调用它StringFromArgs ,它是一个 char**
我还可以看出 argv[1]argv[3] 是我需要的,假设我知道 StringsFromArgs 的最大容量是 3。

我该怎么写:

StringsFromArgs[0]=argv[1]
StringsFromArgs[1]=argv[2]
StringFromArgs[2]=NULL

编辑示例代码

int main(int argc, char** argv){
char** stringsFromArgs;
stringsFromArgs = malloc( 3 * sizeof(char*) ) ;
int i;int k=0;
for(i=1; i<argc; i++){
if(argv[i]= somecondition){
stringsFromArgs[k] = argv[i];
k++;
}
}
//do something
return 0;
}

**编辑:最终根据您的答案解决了这个问题,谢谢!

最佳答案

最简单的方法是::

int main( int argc, char** argv )
{
char** StringsFromArgs ;

StringsFromArgs = malloc( 3 * sizeof(char*) ) ;
if( StringsFromArgs == NULL )
{
return -1 ; // ERROR allocating memory
}

StringsFromArgs[0]=argv[1] ;
StringsFromArgs[1]=argv[3] ;
StringFromArgs[2]=NULL ;

free( StringsFromArgs ) ;
return 0 ;
}

关于C 中的 cmd 参数转换为 char**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com