为啥结果不一样?

独爱大数据spark 2009-05-24 01:36:04
void IntToString(int nNum[], int nLen, char* cNum, char* sz_num[]);
void FindRepeatNumer(int nNum[], int nLen, char* sz_num[]);
int isSubString(char* pSub, char* sz_num[], int nLen);
int main(void)
{
char cNum[1000] = {0};
int arr_num[3] = {4, 11, 11};
char* sz_num[100] = {NULL};

IntToString(arr_num, 3, cNum, sz_num);
FindRepeatNumer(arr_num, 3, sz_num);
}
void FindRepeatNumer(int nNum[], int nLen, char* sz_num[])
{
char szNum[100] = {0};
int i = 0;
for(;i < nLen;++i)
{
IntToString(&nNum[i], 1, szNum, sz_num);
if(isSubString(szNum, sz_num, nLen))
{
printf("repeatNumber:%d\n", nNum[i]);
}
}
}

/*
是否有子串
*/
int isSubString(char* pSub, char* sz_num[], int nLen)
{

int nCount = 0;
for(int i = 0;i < nLen;++i)
{
if(!strcmp(sz_num[i], pSub))
{
++nCount;
}
}
if(nCount > 1)
{
return 1;
}
return 0;
}


void IntToString(int nNum[], int nLen, char* cNum, char* sz_num[])
{
if(NULL == nNum) throw "无效数据!";
int index = 0;
char szStr[1000] = {0};
int i = 0;

for(;i < nLen;++i)
{
do
{
szStr[index] = nNum[i] % 10 +'0';
++index;
}while((nNum[i] /= 10) > 0);
index = 0;
if(nLen > 1)
{
char cTemp[4] = {0};
int n = 0;
for(int j = strlen(szStr)-1;j >=0 ;--j)
{
cTemp[n] = szStr[j];
++n;
}
sz_num[i] = cTemp;

}

}
for(int j = 0;j < 3;++j)
{
printf("%s\n", sz_num[j]);
}
i = 0;
int nCnt = 0;
for(i = index - 1;i >= 0;--i)
{
*(cNum+nCnt) = szStr[i];
++nCnt;
}

}
...全文
61 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cccbuiler 2009-05-24
  • 打赏
  • 举报
回复
问题解决,有什么结论呢?是哪里的问题呢?
  • 打赏
  • 举报
回复
哈哈,问题解决了,哎。。。。。。。。
  • 打赏
  • 举报
回复
谢谢楼上的,嗯
goodname 2009-05-24
  • 打赏
  • 举报
回复
但是你试图将一个局部的数组指针,给他也是错误的。

要么你只能在此地动态分配出来。
sz_num[i] = malloc(4);
strcpy(sz_num[i],cTemp);
  • 打赏
  • 举报
回复
它是一个sz_num指针数组,strcpy肯定不行啊,兄弟
zhangzhongke007 2009-05-24
  • 打赏
  • 举报
回复
眼花缭乱……
goodname 2009-05-24
  • 打赏
  • 举报
回复
感觉应该
strcpy(sz_num[i],cTemp);
flora186 2009-05-24
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
我怀疑是这里有问题:
index = 0;
if(nLen > 1)
{
char cTemp[4] = {0};
int n = 0;
for(int j = strlen(szStr)-1;j >=0 ;--j)
{
cTemp[n] = szStr[j];
++n;
}
sz_num[i] = cTemp;

}
但错在哪里啊,好像没错?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧