#include<stdio.h>
int strlen(char*ch)
{
int i=0;
while(ch[i]!='\0')
{
i++;
}
return i;
}
void inverse(char*ch)
{
int i=0;
int j=strlen(ch)-1;
while(i<j)
{
char temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
i++;
j--;
}
}
int main()
{
char ch[]="hello world";
inverse(ch);
printf("%s\n",ch);
return 0;
}
输出结果:dlrow olleh
#include<stdio.h>
int strlen(char*ch)
{
int i=0;
while(ch[i]!='\0')
{
i++;
}
return i;
}
int symm(char*ch)
{
char*f=ch;
char*t=ch+strlen(ch)-1;
while(f<t)
{
if(*f!=*t)
{
return 1;
f++;
t++;
}
}
return 0;
}
int main()
{
char ch[]="abcddcba";
int v=symm(ch);
if(!v)
{
printf("相同\n");
}
else
{
printf("不相同\n");
}
return 0;
}
输出结果:相同
strcpy()
char * *strcpy(char **dest,const char *src)
? 功能把str所指向的字符串复制到dest是指向的空间中,'\0’也会拷贝进去
如果参数dest是指向的内存空间不够大,看你会造成缓冲溢出的错误情况
#include<stdio.h>
void strcpy(char*dest,const char*src)
{
while(*dest++==*src++);
}
int main()
{
char ch[]="hello";
char str[100];//100,提供足够大的内存空间
strcpy(str,ch);
printf("%s\n",str);
return 0;
}
输出结果:hello
strncpy()
char * strncpy(char *dest,char *src,size_t num)
? 功能把str所指向的字符串的前n个复制到dest是指向的空间中,是否拷贝结束符看指定的长度是否包括’\0’
#include<stdio.h>
void strncpy(char*dest,const char*src,size_t n)
{
while((*dset++==*src++)&&--n);//n=0时,也会进行赋值
}
int main()
{
char ch[]="hello world";
char str[100]={0};//不一定将'\0'拷贝,需要对此数组进行初始化
strncpy(str,ch);
printf("%s\n",str);
return 0;
}
输出结果:hello