学习C语言的第27天

字符串逆置

#include
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
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
输出结果:相同

字符串拷贝

strcpy()

char * *strcpy(char **dest,const char *src)

​ 功能把str所指向的字符串复制到dest是指向的空间中,'\0’也会拷贝进去

如果参数dest是指向的内存空间不够大,看你会造成缓冲溢出的错误情况

#include
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
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

你可能感兴趣的:(学习,c语言,java)