#include<stdio.h>
#include<string.h>
intmain()
{
charstr1[]="123456",str2[7];
inti,j=0,len;
len=strlen(str1);
for(i=len-1;i>=0;i--)
{
str2[j++]=str1[i];
}
str2[6]='\0';
printf("%s",str2);
return0;
}
//方法二指针法
#include<stdio.h>
#include<string.h>
intmain()
{
charstr1[]="123456",*p,str2[7];
inti;
p=&str1[5];
for(i=0;i<strlen(str1);i++)
{
str2[i]=*p--;
}
str2[strlen(str1)]='\0';
printf("%s",str2);
return0;
}
扩展资料
C语言高效复制连接字符串
源字符串的长度未知且目标字符串大小固定时,遵循一些流行的安全编码准则来将连接结果限制为目标区大小实际上会导致两个冗余的传递。例如,按照CERT关于安全使用strncpy和strncat的建议,并且目标区的大小是dsize字节,我们可能会得到以下代码。
与对strncat的调用不同,当s1的长度大于d的大小时,上面对strncpy的调用不会将NUL('\0')结束符追加到d上。它是一个常见的想当然的错误。此外,当s1短于dsize-1时,strncpy函数将所有剩余的字符填满为NUL('\0'),这也被视为一种浪费的,因为随后对strncat的调用将覆盖掉它们。