我的代码如下:
char * test(CString s)
{
int i=s.Find("5",1);
char a[255];
s=s.Mid(i+1);
sprintf(a,"%s",s);
return(a);
}
main()
{
char *s=test("ABC5DEF");
}
返回值是“DEF",可这和直接给char *s="DEF"并相等,为什么?如何才能让它们相等?
char * test(CString s)
{
int i=s.Find("5",1);
char a[255];
s=s.Mid(i+1);
sprintf(a,"%s",s);
return(a);
}
main()
{
char *s=test("ABC5DEF");
}
返回值是“DEF",可这和直接给char *s="DEF"并相等,为什么?如何才能让它们相等?
char ch[100];
int len=str.GetLegth();
for(int i=0;i<len,i++)
{
ch[i]=str.GetAt(i);
}
ch[len]='\0';
char ch[100];
strcpy(ch,str.GetBuffer(str.GetLength()))
char* s1 = "DEF";
char* s2 = "DEF";
if (s1 == s2)
{
}
这样肯定不等的,你要比较只能这样比较
if (strcmp(s1, s2) == 0)
{
}
if (strcmp(s1, s2) == 0)
{
}