鱼C论坛

 找回密码
 立即注册
查看: 2893|回复: 2

strcat_s怎么用?

[复制链接]
发表于 2016-1-4 18:12:28 | 显示全部楼层 |阅读模式
10鱼币
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
void main()
{
        char ip[10]="abcdefg";
char *pi=new char [100];;

strcat_s(pi,sizeof(pi)+1,ip);//应该是这里出了问题。strlen也试过了还是不行。数值也试过了。
cout<<pi;
cin.get();
}
一运行就出现::
QQ图片20160104153458.png

最佳答案

查看完整内容

#include using namespace std; int main() { char a[100]="Hello "; char b[]="World!"; strcat_s(a,sizeof(a),b); cout
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-1-4 18:12:29 | 显示全部楼层
#include <iostream>
using namespace std;
int main()
{
        char a[100]="Hello ";
        char b[]="World!";
        strcat_s(a,sizeof(a),b);
        cout<<a<<endl;
        system("pause");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-1-12 19:21:08 | 显示全部楼层
strcat_s(pi,sizeof(pi)+1,ip);//应该是这里出了问题。strlen也试过了还是不行。数值也试过了。
这是因为strcat_s函数的第二个形参需要你传入的是pi的最大容量,
而你sizeof(pi)得到的是4,因为pi是一个指针,sizeof是求类型的长度,指针的长度都是4,
你只能如实填入pi指向的内存空间的最大长度 , strlen是计算一个字符数组的字符个数,字符个数不等于数组最大容量,因为字符串是以'\0'结尾的,如果你的数组的最大长度是100,而你的字符串只有两个字符,那么strlen返回的是2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 18:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表