gpt4 book ai didi

将字符串复制到 char 数组中

转载 作者:行者123 更新时间:2023-11-30 20:14:45 26 4
gpt4 key购买 nike

我有一个 char* 类型的 token ,我想获取它的第二个元素。例如, token 全部由 4 个长类(class)编号组成,如 1405,我想抓取第二个字符或 4,并将其转换为整数。我使用 strcpy 将字符串添加到 char 字符串数组中,以获取 4,但出现一些错误,但不太确定如何修复它们。这是我的代码

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

int search(struct id array[],char* tok);


int main(void)
{

char* token2 = "1405";
char* text[] = malloc(strlen(token2)+1);
strcpy(text,token2);
int i,number;
for(i=0;i<4;i++)
if(i==1)
{
number = atoi(token2[i]); }
printf("%d\n",number);

我收到以下编译错误

gcc structures_arrayof.c
structures_arrayof.c: In function ‘main’:
structures_arrayof.c:23:20: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
char* text[] = malloc(strlen(token2)+1);
^
structures_arrayof.c:23:5: error: invalid initializer
char* text[] = malloc(strlen(token2)+1);
^
structures_arrayof.c:24:5: warning: passing argument 1 of ‘strcpy’ from incompatible pointer type [enabled by default]
strcpy(text,token2);
^
In file included from structures_arrayof.c:5:0:
/usr/include/string.h:129:14: note: expected ‘char * __restrict__’ but argument is of type ‘char **’
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)

最佳答案

atoi 用于将字符串转换为整数。但是,您想要转换单个字符

你可以写:

number = token2[i] - '0';

这是有效的,因为数字 '0''9' 具有连续的字符代码。不需要 malloc 或其他什么。

关于将字符串复制到 char 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24643527/

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