精华内容
下载资源
问答
  • 【经典】C语言字符串函数原型

    千次阅读 2017-04-06 09:31:22
    /** 字符串倒序:倒序一个字符串代码演示 **/ #include #include #include int main (void) {  char *src = "hello";  char *dest = NULL;  int len = strlen (src);  dest = (char *)...

    strlen / strcmp / strcat / strcpy / memset / strstr / atoi / itoa /

    /** 代码演示 -strlen.c **/
    size_t mystrlen2 (char *s) // 内核
    {
     char *p = s;
     while (*p)
      p++;
     return p - s;
    }

    /** 代码演示 -strcmp.c **/
    int mystrcmp (char *s1, char *s2)
    {
     char *p = s1;
     while (*p) {
      if (*p > *s2)
       return 1;
      if (*p < *s2)
       return -1;
      p++;
      s2++;
     }
     return *s2 == 0 ? 0 : -1;
    }

    /** 代码演示 -strcat.c **/
    char *mystrcat (char *s1, char *s2)
    {
     char *p = s1;
     while (*s1)
      s1++;
     while (*s1++ = *s2++);
     return p; // 首地址
    }

    /** 代码演示 -strcpy.c **/
    char *mystrcpy (char *dest, char *src)
    {
     char *p = dest;
     while (*dest++ = *src++);
     return p;
    }

    /** 代码演示 -memset.c **/ 
    void *mymemset (void *s, char c, size_t len)
    {
     char *p = s;
     while (len--)
      *p++ = c;
     return s;
    }

    /** 代码演示 - strstr.c **/
    const char *mystrstr (const char *s, const char *sub_s)
    {
        int i, j;
        int tmp = 0;
        for (i = 0; s[i] != '\0'; i++) { // i遍历主串,包含子串即返回i下标位置
            j = 0; // 子串位置每次从头开始
            while (s[tmp++] == sub_s[j++]) { // tmp遍历主串,主做判断下标0到字符串末尾\0
                if (sub_s[j] == '\0')
                    return &s[i];
            }  
        }  
        return NULL;
    }


    /** 代码演示 - itoa.c **/

    void itoa (char* buf, unsigned int num) {
        unsigned int tmp = 0;
        buf[0] = '0';
        buf[1] = 'x';
        int i = 9; 
        while (num) {
            tmp = num % 16;
            if (tmp > 9)
                buf[i] = 'a' + tmp - 10;
            else
                buf[i] = '0' + tmp;
            num /= 16;
            i--;
        }
        while (i >= 2) {
            buf[i--] = '0'; // 0x0000005a 中间补全的0
        }
        buf[10] = 0; // 最后1位的\0
    }

    /* itoa.c 版本2 - 原理一样 */
    #include <stdio.h>
    #define ARR_SIZE 20
    void myitoa (char *dest, int num)
    {
        int i = 0, j = 0;
        while (num) {
            dest[i++] = num % 10 + '0';
            num /= 10;
        }  
        dest[i] = '\0';
        for (j = i; j >= 0; j--)
            printf ("%c", dest[j]);
        printf ("\n");
    }

    int main ()
    {
        int num = 0;
        char str[ARR_SIZE] = {0};
        printf ("输入一个数字:");
        scanf ("%d", &num);
        myitoa (str, num);
        printf ("转换为字符串:%s\n", str);
        return 0;
    }

    /** 代码演示 - atoi.c **/
    int atoi (char* s) { 
        int num = 0;
        char* tmp = s;
        while (*tmp++) {
            if (*tmp >= '0' && *tmp <= '9')
                num = num * 10 + (*tmp - '0'); // '0' <==> 48
            else
                break;
        }  
        return num;
    }


    /** 代码演示 - atoi.c  - 版本2  **/
    int myAtoi(const char * str)
    {
        int num = 0; //保存转换后的数值
       int isNegative = 0; //记录字符串中是否有负号
       int n =0;
       char *p = str;
       if(p == NULL) //
    判断指针的合法性
       {
             return -1;
       }
       while(*p++ != '\0') //
    计算数字符串度
       {
             n++;
       }
       p = str;
       if(p[0] == '-') //
    判断数组是否有负号
       {
             isNegative = 1;
       }
       char temp = '0';
       for(int i = 0 ; i < n; i++)
       {
            char temp = *p++;
            if(temp > '9' ||temp < '0') //滤除非数字字符
            {
               continue;
            }
             if(num !=0 || temp != '0') //滤除字符串开始的0 字符
            {
                temp -= 0x30; //将数字字符转换为数值
                num += temp *int( pow(10 , n - 1 -i) );
             }
       }
       if(isNegative) //
    如果字符串中有负号,将数值取反
       {
             return (0 - num);
       }
       else
       {
            return num; //返回转换后的数值
       }
    }
    注意:此段代码只是实现了十进制字符串到数字的转化,读者可以自己去实现2进制,8进制,10进制,16进制的转化。


    /** 字符串倒序:倒序一个字符串代码演示 **/
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int main (void)
    {
        char *src = "hello";
        char *dest = NULL;
        int len = strlen (src);
        dest = (char *)malloc (len+1);
        char *d = dest;
        char *s = &src[len-1];
        while (len-- != 0) 
            *d++ = *s--;
        *d = '\0';
        printf ("dest = %s\n", dest);
        free (dest);
        dest = NULL;
        return 0;
    }


    判断是否是回文函数:
    bool fun(char *p)
    {
        int len = strlen(p);
        char *q = p + len - 1; 
        while (p < q) { // 当两个指针指向的是同一个数组则可以比较大小 
            if ((*p++) != (*q--))
            return flase;
        }
        return true;
    }

    展开全文
  • C语言字符串函数及如何实现这些函数 ​ 近期在复习C语言字符串相关的知识,在观看了 翁恺 老师的 C语言程序设计 课程后,打算对C语言标准库以及 string.h 内的函数进行整理,并写出自己的实现方式(部分函数涉及...

    C语言字符串函数及如何实现这些函数

    ​ 近期在复习C语言字符串相关的知识,在观看了 翁恺 老师的 C语言程序设计 课程后,打算对C语言标准库以及 string.h 内的函数进行整理,并写出自己的实现方式(部分函数涉及系统底层和复杂操作,只给出简单的C语言表示形式,数组同样可以做出相应的函数,但本文以指针角度进行阐释)。有不足之处还请大神指正。

    1.putchar函数(属于stdio.h库函数)

    函数原型: int putchar( int c )

    函数作用:向标准输出输出一个字符

    函数的返回值:

    • 1:输出成功
    • n( n为整数 ) :输出了多个字符
    • EOF (-1) :输出失败
    #include <stdio.h>
    #undef putchar
    
    int myputchar(int c) {
    	return fputc(c,stdout);	
        //fputc函数功能:将字符c写到文件指针fp所指向的文件的当前写指针的位置,
        //fputc函数原型:int fputc (int c, FILE *fp)
    }
    

    2.getchar函数(属于stdio.h库函数)

    函数原型: int putchar( void )

    函数作用:向标准输出读入一个字符

    函数的返回值:

    • 以整数形式返回读入的字符
    • EOF (-1) :读入失败

    这里推荐一篇优质文章,主要讲解getchar工作原理:https://blog.csdn.net/weixin_44551646/article/details/98076863


    3.strlen函数(属于string.h库函数)

    函数原型: *size_t strlen( const char s )

    函数作用:返回s的字符串长度

    函数的返回值:整数,表示s的字符串长度,字符串结尾的‘\0’不计入长度。

    函数的自实现

    int mystrlen(const char *s){
        int len = 0;
        while( *s != '\0' ){
            len++;
            s++;
        }
        return len;
    }	//使用指针实现
    

    4.strcmp函数(属于string.h库函数)

    函数原型: **int strcmp( const char s1, const char s2 )

    函数作用:比较两个字符串,并返回值

    函数的返回值:

    • 0 : s1 == s2
    • n : s1 > s2 , 且s1与s2差值为n(n为正整数)
    • -n : s1 < s2 , 且s1与s2的差值为-n(n为正整数)

    函数的自实现

    int mystrcmp(const char *s1, const char *s2){
        while(*s1 == *s2 && s1 != '\0'){
            s1++;
            s2++;
        }
        return *s1 - *s2;
    }	//使用指针实现
    

    5.strcpy函数(属于string.h库函数)

    函数原型: **char *strcpy(char restrict dst, const restrict src)

    函数作用:将src的字符串拷贝到dst(注: 关键字restrict表示src和dst不重叠(在内存中的储存位置不重叠)(c99))并返回dst

    函数的返回值:dst (返回值是为了使该函数能够参与到其他运算中去)

    //使用示例:复制一个字符串
    char *dst = (char*)malloc(strlen(src)+1);	
    //strlen不包含结尾’/0‘的长度,需要在返回值上+1单位长度
    strcpy(dst,src);
    

    函数的自实现

    char *mystrcpy(char *dst, const char *src){
        while(*src != '\0'){
            *dst = *src;
            dst++;
            src++;
        }
        *dst = '\0';
        return dst;
    }	//使用指针实现
    
    //在 翁恺 老师的课程中提及此函数有更简洁的表达方式(不影响编译和实际效率)
    char *mystrcpy(char *dst, const char *src){
        while(*dst++ = *src++);
        *dst = '\0';
        return dst;
    }
    

    6.strcat函数(属于string.h库函数)

    函数原型: **char *strcpy(char restrict s1, const restrict s2)

    函数作用:将s2拷贝到s1的后面,将二者拼接为一个长的字符串并返回s1

    函数的返回值:s1 (必须保证s1具有足够的空间)

    函数的自实现

    char *mystrcat(char *s1, const char *s2){
        while(*s1 != '\0') s1++;
        while(*s1++ = *s2++);	//这里采用更为简略的写法
        *s1 = '\0';
        return s1;
    }	//使用指针实现
    

    7.strchr函数和strrchr(属于string.h库函数)

    函数原型: **char strchr(const char s, int c)

    函数作用:从左向右搜索指定字符

    函数原型:**char strrchr(const char s, int c)

    函数的返回值:从左/右向右/左搜索指定字符

    • 若字符串中存在该字符,则返回第一次遍历到的该字符的指针
    • 若字符串中不存在该字符,则返回NULL

    函数的自实现

    char *mystrchr(const char *s, int c){
        while(*s != c && *s != '\0') s++;
        return (char*)s;
    }	//使用指针实现
    //(PS:如有更优解决方案请指出,我在尝试将s++写进while判断条件里的时候遇到了一些问题:)
    //  while(*s++ != c && *s++ != '\0');
    //此语句在执行过程中遇到一些奇怪的问题,比如一些字符(如'e')无法搜索到,而其他字符能够正常搜索到,暂未深究...
    //mystrrchr省略,原理大致相同
    

    8.strstr函数和strcasestr(属于string.h库函数)

    函数原型: **char *strstr(const char s1, const char s2)

    函数作用:搜索指定字符串(在s1中搜索s2)

    函数原型: **char *strcasestr(const char s1, const char s2)

    函数作用:忽略大小写搜索指定字符串(在s1中搜索s2)

    函数的返回值:

    • 若str2是str1的子串,则返回str2在str1的首次出现的地址
    • 如果str2不是str1的子串,则返回NULL
    char *strstr(const char *s1,const char *s2)
    {
        char *p = s1;
        const len = strlen(s2);
        while((p=strchr(p,*s2))){
    		if(strncmp(p,s2,len)==0) return (char*)p;
            p++;
        }
        return NULL;
    }	//使用指针实现,由于展开再写一遍搜索函数无意义,先使用string.h里的部分函数(具体实现方法见前文)
    

    ①strncpy

    函数原型: **char *strncpy(char restrict dst, char restrict src, size_t n)

    ②strncat

    函数原型: **char *strncat(char restrict s1, char restrict s2, size_t n)

    ③strncmp

    函数原型: **int strncpy(char restrict s1, char restrict s2, size_t n)

    参数表中的n表示限制实操的字符串长度为n

    以上部分内容参考自翁恺老师的课堂,若转载请注明作者及出处!
    PS:新人求赞~感谢

    展开全文
  • C语言字符串函数总结

    2012-10-15 23:54:02
    今天总结了下C语言字符串函数C语言字符串函数总结: 1.字符处理库(ctype)中的函数 2.stdio中的字符串和字符输入/输出的函数 3.通用实用库stdlib中的字符串转换函数 4.字符串处理库string中的字符...

    今天总结了下C语言字符串函数。

    C语言字符串函数总结:

    1.字符处理库(ctype)中的函数

    2.stdio中的字符串和字符输入/输出的函数

    3.通用实用库stdlib中的字符串转换函数

    4.字符串处理库string中的字符串处理函数

    C语言的字符串实际上是存储单个字符的数组,结尾包含一个结束该字符串的特别的字符("空字符",用'\0'表示)。

    char string1[]="first"实际上有6个元素。

    char color="blue" char * p="blue"

    注意p[i]不能修改,若需修改应用字符数组。

    一、.字符处理库(ctype)中的函数

    #include<ctype.h>

    函数原型:int f(int c)

    isdigit, isalpha, isalnum, isxdigit, islower, isupper, tolower, toupper,

    isspace,空白字符:新行符\n, 空格,回车''\r",水平制表符"\t", 垂直制表符"\v"

    isctrl, ispunct, isprint, isalpha

    二、stdio中的字符串和字符输入/输出的函数

    int getchar(void) 从标准输入设备读取字符以整数返回

    char * get(char * s)  从标准输入设备读入字符到数组s直到遇到新行符和文件结束符为止,然后再数组后追加NULL字符

    int putchar(int c)      打印字符

    int puts(const char * s) 打印字符串s和新行符

    int sprintf(char * s, const char * format) 与printf区别在于输出结果存放在s中

    int sscanf(char * s, const char * format);  与scanf区别在于从数组s读取数据

    示例1 字符串反转

    #include <stdio.h>

    void reverse(char *s)

    {

    if(s[0] == '\0')

    return;

    else

    {

    reverse(&s[1]);

    putchar(s[0]);

    }

    }

    int main()

    {

    char s[100];

    gets(s);

    reverse(s);

    return 0;

    }

    输入:sf

    输出:fs

    示例2 sscanf和sprintf

    #include<stdio.h>

    int main()

    {

    int x=1;

    double y=2.1;

    char s[100];

    sprintf(s,"Hello!%d, %f", x, y);

    puts(s);

    sscanf(s,"%d%f",&x,&y);

    printf("x:%d, y:%f", x, y);

    return 0;

    }

    输出:

    Hello!1, 2.100000

    x:1, y:2.100000

    三、stdlib中的字符串转换函数

    #include<stdlib.h>

    1. atoi(将字符串转换成整型数) 定义函数 int atoi(const char *nptr); 函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。 返回值 返回转换后的整型数。

    附加说明 atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。


    2. atof(将字符串转换成浮点型数) 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。 返回值 返回转换后的浮点型数。 附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。 


    3. atol(将字符串转换成整型数) 定义函数 long atol(const char *nptr); 函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。 返回值 返回转换后的长整型数。 附加说明 atol()与使用strtol(nptr,(char**)NULL,10);结果相同。 


    4. strtod(将字符串转换成浮点数) 定义函数 double strtod(const char *nptr,char **endptr); 函数说明 strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。 返回值 返回转换后的浮点型数。


    5.strtol(将字符串转换成长整型数) 定义函数 long int strtol(const char *nptr,char **endptr,int base); 函数说明 strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。 返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。 附加说明 ERANGE指定的转换字符串超出合法范围。  

    6. strtoul(将字符串转换成无符号长整型数) 定义函数 unsigned long int strtoul(const char *nptr,char **endptr,int base); 函数说明 strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。 返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。 附加说明 ERANGE指定的转换字符串超出合法范围。 

    示例:

    #include <stdio.h> 

    #include <stdlib.h>

    int main()

    {  

    double d;  

    char * string="51.2 String"; 

    char * strPtr;  

    d=strtod(string, &strPtr); 

    printf("%f And %s", d, strPtr);  

    return 0;

    }

    输出:51.200000 And String

    四、string.h中的字符串处理函数

    (一)字符操作函数

    1. char * strcpy(char * s1, const char * s2)  把s2拷贝到s1,返回s1的值

    2. char * strncpy(char * s1, const char * s2, size_t n) 拷贝s2中的n个字符到s1

    3. char * strcat(char * s1, const char * s2) 把s2追加到s1后边

    4. char * strncat(char * s1, const char * s2, size_t n) 把s2的n个字符追加到s1后

    注意:

    strncpy不一定拷贝第二个参数的终止符'\0'(仅当n至少比s2长度大1时才拷贝)

    但strncat则会自动将'\0'拷贝到结果后边。

    #include<stdio.h>

    #include<string.h>

    int main()

    {

    char x[]="Happy EveryDay";

    char y[]="Happy";

    char z[100];

    //strcpy

    printf("strcpy Test:");

    printf("%s\n",strcpy(z,x));

    //strncpy

    printf("strncpy Test:");

    strncpy(z,x,5);

    z[5]='\0';

    puts(z);

    //strcat

    printf("strcat Test:");

    printf("%s\n", strcat(z,y));

    //strncat

    printf("strncat Test:");

    printf("%s\n", strncat(z,y,2));

    return 0;

    }

    输出:

    strcpy Test:Happy EveryDay

    strncpy Test:Happy

    strcat Test:HappyHappy

    strncat Test:HappyHappyHa

    (二)比较函数

    1. int strcmp(const char * s1, const char * s2) 比较字符串s1和s2,小于、等于、大于分别返回负值、0、正值

    2. int strncmp(const char * s1, const char * s2, size_t n) 比较字符串s1和s2的n个字符,结果同strcmp(不比较'\0'后的字符)

    (三)查找函数

    1. char * strchar(const char * s, int c) 返回指向字符串s中字符c首次出现的指针,没有返回NULL

    2. char * strrchar(const char * s, int c) 返回指向字符串s中字符c最后一次出现的指针,没有返回NULL 
    3. char * strstr(const char * s1, const char * s2) 返回指向字符串s1中首次出现s2位置的指针,无返回NULL

    4. size_t strspn(const char * s1, const char * s2)  返回s1中只包含s2中字符的起始段的长度

    5. size_t strcspn(const char * s1, const char * s2) 返回s1中不包含s2中字符的起始段的长度

    6. char * strpbrk(const char * s1, const char * s2) 返回指向s1中首次出现s2中字符的位置的指针,没有返回NULL

    7. char * strtok(char * s1, const char * s2)

     将s1打断为用s2中包含的字符分开的记号。第1次调用把s1作为参数,以后为继续把该字符串打断成记号而再次调用strtok时要用NULL作为第一个参数,每次调用都返回指向当前记号的指针,字符串没有剩余记号时返回NULL。

    注意:strtok会修改输入的字符串,故请拷贝后再调用。


    示例:

    #include<stdio.h>

    #include<string.h>

    int main()

    {

    char str[]="This is a string";

    char * tokenPtr;

    tokenPtr=strtok(str, " ");

    while(tokenPtr != NULL)

    {

    puts(tokenPtr);

    tokenPtr=strtok(NULL," ");

    }

    return 0;

    }

    输出:

    This

    is

    a

    string

    (四)内存函数

    用来操作、比较和查询内存块,操作对象为”内存块“。

    1. void * memcpy(void * s1, const void * s2, size_t n) 将s2中连续n个字节的数据拷贝到s1中 ,注意s1和s2内存区域不能重叠

    2. void * memmve(void * s1, const void * s2, size_t n) 将s2中连续n个字节的数据拷贝到s1中 ,但s1和s2内存区域可以重叠

    3. int memcmp(const void * s1, const void * s2, size_t n) 比较内存区域s1和s2的前n个字节,<、=、>分别返回负值、0、正值。

    4. void * memchr(const void * s, int c, size_t n) 返回指向s1对象的前n个字节查找出现c的位置的指针,没有返回NULL

    5. void * memset(void * s, int c, size_t n) 将c拷贝到s1中的前n个字节中



    示例:

    int array[5] = {1,4,3,5,2};  for(int i = 0; i < 5; i++)  cout<<array[i]<<" ";  cout<<endl;  memset(array,0,5*sizeof(int));  for(int k = 0; k < 5; k++)  cout<<array[k]<<" ";  cout<<endl;  输出的结果就是:  1 4 3 5 2  0 0 0 0 0

    (五)其他函数

    1. char * strerror(int errornum) 返回与errornum匹配的字符串指针

    2. size_t strlen(const char * s) 计算字符串s的长度,返回终止符NULL前的字符个数

    展开全文
  • 字符串的拼接函数为例strcat.原型:extern char *strcat(char *dest,char *src);用法:#include 功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的’\0′)并添加’\0’。说明:src和dest所指内存区域不可以...
  • 字符串函数<string.h> strcpy函数 strcpy()把第二个字符串拷贝到第一个字符串,相当于字符串赋值运算符 函数原型 char strcpy(char dest, const char *src) #include <stdio.h> #include <string.h&...

    字符串函数<string.h>

    strcpy函数

    • strcpy()把第二个字符串拷贝到第一个字符串,相当于字符串赋值运算符
    • 函数原型 char strcpy(char dest, const char *src)
    #include <stdio.h>
    #include <string.h>
    main()
    {
    char str1[5]="aa";
    char str2[5] = "bb";
    //char *str1="aa"; 这样是不行的.
    printf("%s ",str1);
    
    printf("%s",strcpy(str1,str2));
    } 
    • 自定义函数
    char *fuzhi(char *str1,char *str2)
    {
    	while(*str1)*str1++=*str2++;
    }

    具体详细内容可以看C Primer Plus 702页B.5.22
    2019/12/26 19/18

    展开全文
  • 标准C语言字符串函数

    2016-01-06 10:48:52
    功 能: 拷贝一个字符串到另一个字符串中  用 法: char *stpcpy(char *dest, char *src);  strcat  功 能: 把src所指的字符串添加到dest结尾处(覆盖dest结尾处的'\0',并添加'\0') 用 法: char *strcat
  • c语言 字符串函数

    2011-10-13 18:34:47
    c语言中的字符串函数 主要是两大类,一类是拷贝的,一类是比较的,另一个就是其他的 拷贝的有: 1. strcpy 函数原型 char *strcpy( char *strDestination, const char *strSource ); 函数功能 将strS
  • 字符串函数<string.h>-----strlen函数 strlen()函数 strlen函数用来统计字符串的长度. 遇到’/0’停止,但是不包括’/0’. -其函数原型为 unsigned int strlen (char *s); #include <stdio.h> ...
  • 字符串函数<string.h> strcat函数 strcat()函数用于拼接字符串 , 该函数接受两个字符串作为参数. 其函数原型 char *strcat (char *str1,const char *str2) 该函数将第二个字符串拷贝到第一个...
  • C语言字符串函数----strcmp()函数用法

    千次阅读 2019-12-26 19:02:34
    字符串函数<string.h> strcmp函数 strcmp()用于两个字符串的比较,如果相同则返回0,如果不相同则返回非零值. 函数原型 int strcmp(const char* stri1,const char* str2); #include <stdio.h> #...
  • 当学习到C语言字符串的操作时,我们知道了字符串的定义方式,字符串的输出方式,其中包括字符串的输入输出语句,例如 puts,gets ,fputs 等。 还有字符串的操作函数, 例如 strcpy,strcmp,strcat,等。到最后明白函数...
  • C语言字符串函数

    2012-05-27 21:55:23
    strrchr ...strrchr函数的作用是:查找一个字符在某个字符串中末次出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。 例子
  • C语言字符串函数-strpbrk函数

    千次阅读 2014-03-22 13:30:54
    功能:在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,但s2中不能包含'\0'。这个函数可以认为是strchr的一个扩展版本。 其它:这个函数名字不如strcpy、strcmp那么直接,它的意思是【string ...
  • 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat(p, p1) 附加字符串  strncat(p, p1, n) 附加指定长度字符串  strlen(p) 取字符串长度  strcmp(p, p1) 比较...
  • C语言字符串函数源码详解

    千次阅读 2013-06-27 10:49:10
    1.拷贝字符串到目标字符串 char *strcpy(char *strDestination, const char *strSource); 复制源串strSource到目标串strDestination所指定的位置, 包含NULL结束符. 不能处理源串与目标串重叠的情况. ...
  • 学习编程的人都知道,字符串...这里将谭浩强c语言程序设计书里关于字符串的标准函数原型用我写的c代码描述一下,经过调试能运行,基本上能实现其功能。   1.strcat函数函数的作用是将str2字符串接到str1字符串
  • 之前在学习C语言的时候,知道C语言库函数中有很多字符串处理...使用有关字符串处理的库函数,务必包含头文件string.h,即#include 1、 比较字符串大小函数1)忽略大小写---strcasecmp函数原型: int strcasecmp (c...
  • C语言字符串处理函数

    千次阅读 2015-08-30 06:56:53
    C语言字符串处理函数库包括复制函数、拼接函数、比较函数、搜索函数等,这些函数的声明都位于头文件。使用这些函数时,需要使用#include指令将头文件包含到文件中。
  • c语言字符串分割–strtok | 逗号分隔 代码,原理是使用字符串分隔函数Strtok()函数详解:该函数包含在”string.h”头文件中函数原型:char* strtok (char* str,constchar* delimiters );函数功能:切割字符串,将str...
  • C语言字符串函数 strtok() 函数原型 char *strtok(char *str,const char *delimiters); 参数 str,待分割的字符串 delimiters,分隔符字符串 该函数用来将字符串str分割成一个个片段。 参数str指向欲分割的字符串,...
  • C语言)常见字符函数和字符串函数

    万次阅读 多人点赞 2018-07-23 10:49:50
    字符串通常放在常量字符串中或者字符数组中,字符串常量适用于那些对她不做修改的字符串函数。 string.h这个头文件里声明的函数原型也全是针对char数组的种种操作。 直到C++中才出现了string这个类 这篇文章就...
  • 功 能: 拷贝一个字符串到另一个字符串数组中参数: char *destin 为复制的目标字符串数组const char *source 为复制的源字符串数组返回值: 返回指向目标字符串数组的指针注意:必须保证destin 足够大,能够容纳下 ...
  • C语言 字符串逆序 函数 strrev()

    千次阅读 2019-05-17 15:06:12
    头文件 #include <string.h> 函数原型 char *strrev(char *str); 功能 把字符串str的所有字符的顺序颠倒。(逆序) 示例
  • C语言字符串处理函数

    千次阅读 2019-03-04 19:51:51
    main(int argc,char* argv[ ]) argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数, char *argv[]是一个字符数组,其大小是int ...函数原型:char ...
  • C语言字符串常用操作函数C语言字符串、文件操作常用操作函数标准输入/输出重定向文件操作补充 C语言字符串、文件操作常用操作函数 字符串输出 - puts int puts(const char *str) 字符串写入到标准输出 stdout 字符...
  • c语言字符串操作函数

    2015-03-28 18:45:45
    函数原型:extern char *strstr(char *str, const char *psubstr); 功能:搜索psubstr字符串在另一个字符串str中的第一次出现的位置。 返回值:若psubstr是str的子串,则先确定psubstr在str的
  • 常用C语言字符串操作函数

    千次阅读 2011-10-09 20:36:56
    Linux下常用C语言字符串操作函数 stroul, strdup snprintf() atio   C中常用字符串操作函数 #include   size_t strlen(const char *s) 测量字符串长度s的实际长度。 例如s
  • C语言字符串函数strcat()和strncat() strcat() 函数简介 strcat() 函数用来连接字符串,其原型为: ​ char *strcat(char *dest, const char *src); 【参数】dest 为目的字符串指针,src 为源字符串指针。 strcat...
  • C语言常用的字符串函数 以下函数都在头文件 string.h 中 (1)strcpy()字符串复制函数 函数原型:char *strcpy(char *d ,char *s) 功能:复制字符串s到字符串d ,返回字符串d 当我们用 ’ = ‘号单独给字符串赋值是不...
  • C语言并没有字符串类型,而是通过把字符数组的字符后面一位赋值为’\0’字符来实现的, 这个’\0’字符的码值为0, 而不是’0’字符的48!C语言的这种通过数组的方式进行存储字符串的形式在使用的过程有很大的难度, 一不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,877
精华内容 14,750
关键字:

c语言字符串函数原型

c语言 订阅