gpt4 book ai didi

c - 如何编辑字符数组的某些部分

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

c 中是否有任何函数或方法可以对 char 数组的某些部分进行交换/编辑。

一些伪代码:

char A[] = {"/text/X/text/Y","/text/G/text/H"};
int VAL[] = {0,1,2,3};

swap/edit -> set X to VAL[0],set Y to VAL[1],set g to VAL[2],set H to VAL[3]

最佳答案

您必须指定您要在大海捞针 (A) 中寻找什么()。strstr() 查找指向针的指针(如果它存在于大海捞针中)。由于您的替换值是 int,而不是 charchar[] (或指向这些类型的指针),因此您需要使用 sprintf/snprintf 将格式化字符串保存到变量中。

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[]) {
char A[] = {"/text/X/text/Y/text/G/text/H"};
int VAL[] = {0,1,2,3};
char needle[][2] = {
{"X"},
{"Y"},
{"g"},
{"H"}
};

printf("Original A: %s\r\n", A);
//swap/edit -> set X to VAL[0],set Y to VAL[1],set g to VAL[2],set H to VAL[3]
for(int i=0; i<(sizeof(VAL)/sizeof(int)); i++) {
char *p = NULL;
p = strstr(A, needle[i]);
if(p) snprintf(p, 1, "%1i", VAL[i]);
}
printf("Edited A: %s\r\n", A);
return 0;
}

输出:

Original A: /text/X/text/Y/text/G/text/H
Edited A: /text/0/text/1/text/G/text/3

关于c - 如何编辑字符数组的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59379736/

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