c语言结构体简单问题 欢迎指教出现这样的错误时为什么啊c语言结构[解决办法]在字符串后面加一个终止符试试
c语言结构体简单问题 欢迎指教
出现这样的错误时为什么啊 c语言 结构
[解决办法]
在字符串后面加一个终止符试试
[解决办法]
struct houxuanren /* 结构体数组*/
{
char name[20];
int count;
}hxrname[3]={{"liming",0},{"hujinsao",0},{"jiangzemin",0}};
[解决办法]
在XE4上测试了代码没有问题
你把main函数改成int的,给个返回值试试
[解决办法]
有可能,毕竟编译器不同
你这个工程应该是C语言,不是C++的吧?
[解决办法]在BCB里面可以正常编译,把scanf_s修改成scanf即可
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include<stdio.h>
#include<string.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct houxuanren /* 结构体数组*/
{
char name[20];
int count;
}hxrname[3]={"liming",0,"hujinsao",0,"jiangzemin",0};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,j;char hxr_name[20];
for(i=1;i<=10;i++)
{
//scanf_s("%s",hxr_name);
scanf("%s",hxr_name);
for(j=0;j<3;j++)
if(strcmp(hxr_name,hxrname[j].name)==0)
hxrname[j].count++;
}
printf("\n");
for(i=0;i<3;i++)
printf("%5s;%d\n",hxrname[i].name,hxrname[i].count);
}
//---------------------------------------------------------------------------
[解决办法]在VS中正常编译
#include<stdio.h>
#include<string.h>
struct houxuanren /* 结构体数组*/
{
char name[20];
int count;
}hxrname[3]={"liming",0,"hujinsao",0,"jiangzemin",0};
void main()
{
int i,j;char hxr_name[20];
for(i=1;i<=10;i++)
{
scanf_s("%s",hxr_name);
for(j=0;j<3;j++)
if(strcmp(hxr_name,hxrname[j].name)==0)
hxrname[j].count++;
}
printf("\n");
for(i=0;i<3;i++)
printf("%5s;%d\n",hxrname[i].name,hxrname[i].count);
}
[解决办法]hxr_name的空间小了,导致数组溢出,将语句(char hxr_name[20];)修改(char hxr_name[200];)试试