strcat -- 连接字符串
strcat 函数文档函数概要:
strcat 函数用于连接两个字符串。
将源字符串拷贝并连接到目标数组存放的字符串后边,此过程将覆盖第一个参数的结束符 '\0'。
两个参数的位置不应该重叠。
函数原型:
#include <string.h>
...
char *strcat(char *dest, const char *src);
参数解析:
参数含义
dest 指向用于存放字符串的目标数组,它应该包含一个字符串,并且提供足够容纳连接后的总字符串长度的空间(包含结束符 '\0')
src 指向待连接的源字符串,该参数不应该与 dest 参数指向的位置发生重叠
返回值:
返回值是指向目标字符串的指针。
演示:
#include <stdio.h>
#include <string.h>
int main()
{
char str1 = "Original String";
char str2[] = "New String";
strcat(str1, " ");
strcat(str1, str2);
printf("str1: %s\n", str1);
return 0;
}
版权归鱼C工作室(www.fishc.com)所有,转载请注明来源!
get it 为什么我会影响到上一行数组 超级棒! 我觉得,是把str1中的“\0”前面的和str2拼接。
后面str2的语句会被修改吗 讲得好 为什么这个函数里把str2连接到str1,str2不会改变,但是把str1连接到str2,发现str1改变了,为什么? 为啥拼空格之后,下一条就拼不上了 {:10_281:} 我试了Dev-C++结果可以越界 额外减小 发表于 2022-7-21 14:11
我试了Dev-C++结果可以越界
就是不用提供足够空间
{:5_102:} as843743021 发表于 2019-6-4 17:35
后面str2的语句会被修改吗
hui 66666666666 #include <stdio.h>
double add(double,double);
double sub(double,double);
double mul(double,double);
double divi(double,double);
double (*cal(char))(double,double);
double add(double a,double b)
{
return a+b;
}
double sub(double a,double b)
{
return a-b;
}
double mul(double a,double b)
{
return a*b;
}
double divi(double a,double b)
{
return a/b;
}
double (*cal(char c))(double,double)
{
switch(c)
{
case '+': return add;
case '-': return sub;
case '*': return mul;
case '/': return divi;
}
}
int main()
{
double a,b;
//char c;
printf("请输入两个数;");
scanf("%lf%lf",&a,&b);
printf("对这两个数进行加减乘除后的结果是:");
printf("%.2lf ",(*cal('+'))(a,b));
printf("%.2lf ",(*cal('-'))(a,b));
printf("%.2lf ",(*cal('*'))(a,b));
if(b != 0)
{
printf("%.2lf\n",(*cal('/'))(a,b));
}
else
{
printf("除数不能为0!\n");
}
return 0;
}
ps:MD5的只能半成品,没搞懂为什么unsigned char 类型,能用 十六进制输出?{:10_245:}{:10_266:}
页:
[1]