自己写了一个字符串连接函数,出现问题

junkli 2011-05-20 08:45:00
设置断点调试都进入不了断点,而且根本没有连接成功,不知道怎么回事

char * linkChar(char *EmailName)
{
char SelectTable[]="select * from ";
WORD SelectTableLen=sizeof(SelectTable);
int i=0;
while(*(EmailName+i)!='\0')
{
*(SelectTable+SelectTableLen+i)=*(EmailName+i);
i++;
}
*(SelectTable+SelectTableLen+i)='\0';
return SelectTable;
}
...全文
165 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yulinlang 2011-05-20
  • 打赏
  • 举报
回复
两个问题:
1。返回栈上的局部变量。
2。数组越界。
yulinlang 2011-05-20
  • 打赏
  • 举报
回复
两个问题:
1。返回栈上的局部变量。
2。数组越界。
千杯不醉-sen 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yangsen600 的回复:]
C/C++ code

char * linkChar(char *EmailName)
{
char SelectTable[]="select * from "; //空格必须加,不加下面加也行
sprintf(SelectTable,"%s%s",SelectTable,EmailName);
return SelectTable;
}
[/Quote]
这个可以搞定的。。。能简单就简单
junkli 2011-05-20
  • 打赏
  • 举报
回复
改成WORD SelectTableLen=strlen(SelectTable);可以调试了. 可是发现
*(SelectTable+SelectTableLen+i)=*(EmailName+i);这句会跳过执行的...
千杯不醉-sen 2011-05-20
  • 打赏
  • 举报
回复

char * linkChar(char *EmailName)
{
char SelectTable[]="select * from "; //空格必须加,不加下面加也行
sprintf(SelectTable,"%s%s",SelectTable,EmailName);
return SelectTable;
}
KID_coder 2011-05-20
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <windows.h>
char * linkChar(char *EmailName)
{
static char SelectTable[100]="select * from "; //
strcpy(SelectTable, "select * from "); //每次都把SelectTable赋值一遍
WORD SelectTableLen=strlen(SelectTable); //strlen
int i=0;
while(*(EmailName+i)!='\0')
{
*(SelectTable+SelectTableLen+i)=*(EmailName+i);
i++;
}
*(SelectTable+SelectTableLen+i)='\0';
return SelectTable;
}


int main( )
{
char str[100] = "hello";
printf("%s\n", linkChar(str));
return 0;
}

千杯不醉-sen 2011-05-20
  • 打赏
  • 举报
回复
有简单的干嘛不用、、、
千杯不醉-sen 2011-05-20
  • 打赏
  • 举报
回复
char SelectTable[100]="select * from ";
千杯不醉-sen 2011-05-20
  • 打赏
  • 举报
回复

char * linkChar(char *EmailName)
{
char SelectTable[]="select * from ";
WORD SelectTableLen=strlen(SelectTable);
int i=0;
while(*(EmailName+i)!='\0')
{
*(SelectTable+SelectTableLen+i)=*(EmailName+i);
i++;
}
*(SelectTable+SelectTableLen+i)='\0';
return SelectTable;
}
KID_coder 2011-05-20
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <windows.h>
char * linkChar(char *EmailName)
{
static char SelectTable[100]="select * from "; //要够大
WORD SelectTableLen=strlen(SelectTable); //strlen
int i=0;
while(*(EmailName+i)!='\0')
{
*(SelectTable+SelectTableLen+i)=*(EmailName+i);
i++;
}
*(SelectTable+SelectTableLen+i)='\0';
return SelectTable;//返回临时变量不是好的做法~
}


int main( )
{
char str[100] = "hello";
printf("%s\n", linkChar(str));
return 0;
}

static 化SelectTable的做法也不是很好~
使用malloc也会容易造成内存泄露
ljt3969636 2011-05-20
  • 打赏
  • 举报
回复
哪加的断点?
代码来说
WORD SelectTableLen=sizeof(SelectTable);有问题,这里SelectTableLen永远是4,因为SelectTable已经是指针类型了
WORD SelectTableLen=strlen(SelectTable);//返回字串长度按你需要来决定是不是SelectTableLen=SelectTableLen+1;
千杯不醉-sen 2011-05-20
  • 打赏
  • 举报
回复
连接数据库,写的这么复杂。。。
下载代码方式:https://pan.quark.cn/s/957405011bdf 在计算机视觉技术中,轮廓提取与中心识别被视为两项核心的技术,它们对于图像处理及模式识别领域扮演着不可或缺的角色。本文将深入剖析这两种算法,并围绕"轮廓提取(中心识别)算法"这一核心主题,同时结合所提供的压缩包文件"Contour",对相关知识点进行详尽的阐述。 轮廓提取算法,主要功能在于识别并分离图像中的不同对象。该算法通过探测物体边缘,构建出明确的边界线,从而实现图像内部各组成部分的区分。在多色位图环境下,不同的色彩可能象征着不同的对象或区域,因此,一个性能优越的轮廓提取算法应当具备处理此类复杂场景的能力。常见的轮廓提取算法包括Canny边缘检测、Sobel算子、Laplacian算子和Hough变换等。这些算法各自具备独特的优缺点,究竟选择何种方法,需要依据具体的应用情境以及性能要求来决定。 1. Canny边缘检测:由John F. Canny所研发,这是一种自适应的多级边缘检测方法。Canny算法借助高斯滤波器来降低噪声干扰,随后运用强度梯度和非极大值抑制技术来定位最显著的边缘,最终通过双阈值检测来区分边缘与噪声。 2. Sobel算子:Sobel算子是一种基于梯度的边缘检测工具,它通过计算图像在水平和垂直方向上的梯度来探测边缘。此方法操作简便且效率较高,但可能对图像中的噪声较为敏感。 3. Laplacian算子:Laplacian算子是一种二阶导数算子,能够迅速识别图像中的尖峰(即边缘)。然而,它容易受到噪声的影响,因此通常需要与其他技术结合使用,例如Gaussian滤波。 4. Hough变换:Hough变换是一种在参数空间中进行边缘检测的方法,它能够检测出任意...
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: **本资源原本已设置为“0积分下载”**,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,**自动将部分资源的积分调整为非0数值**(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 **因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。** 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。**强烈建议:仅在页面显示为0积分时进行下载。** 另外,本资源描述中**并未直接提供具体的下载地址或外部链接**,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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