这不是我的全部代码我只是总结起来很容易看到。我没有问题将字符串转换为整数但我不能将整数转换为字符串。
该程序刚崩溃。这是代码。查看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;
}
答案 0 :(得分:1)
通过这样做:
a[0][5]="0";
您正在为a[0][5]
指定一个指向包含字符串文字"0"
的只读内存的指针。
下面:
itoa( z, a[0][5],10 );
你正试图在那里写,给你内存访问冲突。