gpt4 book ai didi

c - 来自命令提示符的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:43:27 25 4
gpt4 key购买 nike

我正在尝试使用命令提示符传递我的参数。

有可以向我的程序传递 3 种不同的类型:int、char、string。它适用于整数和字符,但如果我正在传递字符串,我会遇到段错误。

#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "MergeSort.h"


int main(int argc, char *argv[])
{
if (argc > 2){
if (strcmp(argv[1], "int") == 0){
cmp_t cmp = CompareInt;
int arr[argc - 2];
for(int i = 2; i < argc; i++) sscanf (argv[i], "%d", &arr[i - 2]);;
merge_sort(arr, argc - 2, sizeof(int), cmp);
for(int i = 0; i < argc - 2; i++) printf("%i ", arr[i]);
}
else if(strcmp(argv[1], "char") == 0){
cmp_t cmp = CompareChar;
char arr[argc - 2];
for(int i = 2; i < argc; i++) sscanf (argv[i], "%c", &arr[i - 2]);;
merge_sort(arr, argc - 2, sizeof(char), cmp);
for(int i = 0; i < argc - 2; i++) printf("%c ", arr[i]);
}
else{
cmp_t cmp = CompareStr;
char* arr[argc - 2];
for(int i = 2; i < argc; i++) sscanf (argv[i], "%s", arr[i - 2]);
merge_sort(arr, argc - 2, sizeof(char*), cmp);
for(int i = 0; i < argc - 2; i++) printf("%s ",arr[i]);
}
}
return 0;
}

最佳答案

我可以简单地将指针从 argv 复制到 arr,例如:arr[i-2] = argv[i];

第二种方法是为字符串分配内存。

关于c - 来自命令提示符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39886236/

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