gpt4 book ai didi

使用 atoi/sprintf 将整数转换为字符串

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:06 24 4
gpt4 key购买 nike

这不是我的全部代码,我只是总结一下,以便于查看。我可以将字符串转换为整数没有问题,但我无法将整数转换为字符串。该程序只是崩溃。这是代码。查看带有 itoa 的行。

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

#define SIZEX 49
#define SIZEY 6

int main() {
size_t x, y;
char *a[50][7];
char name[50][100];
char surname[50][100];
char IN[50][100];
char YOB[50][100];
char usname[50][100];
char pass[50][100];
char totamount[50][100];

for (x = 0; x <= SIZEX; x++) {
a[x][0] = name[x];
a[x][1] = surname[x];
a[x][2] = IN[x];
a[x][3] = YOB[x];
a[x][4] = usname[x];
a[x][5] = totamount[x];
a[x][6] = pass[x];
}
printf("\nPlease enter the name of the new user\n");
scanf(" %s", a[0][0]);

printf("Please enter the surname of the new user\n");
scanf(" %s", a[0][1]);

printf("Please enter the Identity Number of the new user\n");
scanf(" %s", a[0][2]);

printf("Please enter the year of birth of the new user\n");
scanf(" %s", a[0][3]);

printf("Please enter the username of the new user\n");
scanf(" %s", a[0][4]);

strcpy(a[0][6], a[0][4]);
strrev(a[0][6]);

a[0][5] = "0";

int z;
z = atoi(a[0][5]);
z = z + strlen(a[0][4]) * 10;

itoa(z, a[0][5], 10);
//sprintf(a[0][5], "%d", z);

printf("%s\n", a[0][5]);
printf("%d\n", z);

return 0;
}

最佳答案

这样做:

a[0][5]="0";

您正在为 a[0][5] 分配一个指向包含字符串文字 "0" 的只读内存的指针。

这里:

itoa( z, a[0][5],10 );

你正试图在那里写,给你内存访问冲突。

关于使用 atoi/sprintf 将整数转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34622142/

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