strcat、strncat、strcmp、strncmp、strcpy、strncpy、strdup

》strcat

char strcat(char * str1,char * str2);
函数功能: 把字符串str2接到str1后面,str1最后的'\0'被取消
函数返回: str1
参数说明:
所属文件: <string.h>

#include <stdio.h>
#include <string.h>
int main()
{
  char buffer[80];
  strcpy(buffer,"Hello ");
  strcat(buffer,"world");
  printf("%s\n",buffer);
  return 0;
}

》strncat

char strncat(char *dest, const char *src, size_t maxlen)
函数功能: 将字符串src中前maxlen个字符连接到dest中
函数返回:
参数说明:
所属文件: <string.h>

#include <stdio.h>
#include <string.h>
char buffer[80];
int main()
{
  strcpy(buffer,"Hello ");
  strncat(buffer,"world",8);
  printf("%s\n",buffer);
  strncat(buffer,"*************",4);
  printf("%s\n",buffer);
  return 0;
}

》strcmp

int strcmp(char * str1,char * str2);
函数功能: 比较两个字符串str1,str2.
函数返回: str1<str2,返回负数;str1=str2,返回 0;str1>str2,返回正数.
参数说明:
所属文件: <string.h>

#include <string.h>
#include <stdio.h>
int main()
{
  char *buf1="aaa", *buf2="bbb",*buf3="ccc";
  int ptr;
  ptr=strcmp(buf2, buf1);
  if(ptr>0)
    printf("buffer 2 is greater thanbuffer 1\n");
  else
    printf("buffer 2 is less thanbuffer 1\n");
  ptr=strcmp(buf2, buf3);
  if(ptr>0)
    printf("buffer 2 is greater thanbuffer 3\n");
  else
    printf("buffer 2 is less thanbuffer 3\n");
  return 0;
}

》strncmp

int strncmp(char *str1,char *str2,int count)
函数功能: 对str1和str2中的前count个字符按字典顺序比较
函数返回: 小于0:str1<str2,等于0:str1=str2,大于0:str1>str2
参数说明: str1,str2-待比较的字符串,count-比较的长度
所属文件: <string.h>

#include<string.h>
#include<stdio.h>
int main()
{
   char str1[] ="aabbc";//
   char str2[] = "abbcd";//
   //为使测试程序更简练,此处假定了strncmp只返回-1,0,1三个数
   char res_info[] = {'<','=','>'};
   int res;

   //前1个字符比较
   res = strncmp(str1, str2, 1);
   printf("1:str1%c str2\n", res_info[res+1]);

    //前3个字符比较
   res = strncmp(str1, str2, 3);
   printf("3:str1%c str2\n", res_info[res+1]);
}

》strcpy

char strcpy(char* str1,char* str2)
函数功能: 把str2指向的字符串拷贝到str1中去
函数返回: 返回str1,即指向str1的指针
参数说明:
所属文件: <string.h>

#include <stdio.h>
#include <string.h>
int main()
{
        char string[10];
        char *str1="abcdefghi";
        strcpy(string,str1);
        printf("the string is:%s\n",string);
        return 0;
}

》strncpy

char *strncpy(char *dest, const char *src,intcount)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件: <string.h>

#include<stdio.h>
#include<string.h>
int main()
{
   char*src = "bbbbbbbbbbbbbbbbbbbb";//20 'b's
   char dest[50] ="aaaaaaaaaaaaaaaaaaaa";//20 'a's
   puts(dest);
   strncpy(dest, src, 10);
   puts(dest);
   return0;
}

》strdup

char strdup(const char *s)
函数功能: 字符串拷贝,目的空间由该函数分配
函数返回: 指向拷贝后的字符串指针
参数说明: src-待拷贝的源字符串
所属文件: <string.h>

#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main()
{
	char *dup_str, *string="abcde";
	dup_str=strdup(string);
	printf("%s", dup_str);
	free(dup_str);
	return 0;
}