美文网首页
字符串函数:字符串函数strlen

字符串函数:字符串函数strlen

作者: 爱生活_更爱挺自己 | 来源:发表于2020-11-05 18:13 被阅读0次

string.h

  • strlen
  • strcmp
  • strcpy
  • strcat
  • strchar
  • strstr

strlen

  • size_t strlen(const char *s);
  • 返回s的字符串长度(不包括结尾的0)
#include<stdio.h>
#include<string.h>

int main(int argc, char const *argv[])
{
    char line[] = "Hello";
    printf("strlen=%lu\n", strlen(line));
    printf("sizeof=%lu\n", sizeof(line));
    
    return 0;
}
strlen=5
sizeof=6
#include<stdio.h>
#include<string.h>

int mylen(const char* s)
{
    int cnt = 0;
    int idx = 0;
    while (s[idx] != '\0'){
        idx++;
        cnt++;
    }
    return cnt;
}

int main(int argc, char const *argv[])
{
    char line[] = "Hello";
    printf("strlen=%lu\n", mylen(line));
    printf("sizeof=%lu\n", sizeof(line));
    
    return 0;
}

strcmp

  • int strcmp(const char *s1, const char *s2);
  • 比较两个字符串,返回
    • 0:s1==s2
    • 1:s1>s2
    • -1:s1<s2
#include<stdio.h>
#include<string.h>

int main(int args, char const *argv[])
{
    char s1[] = "abc";
    char s2[] = "abc";
    printf("%d\n", s1==s2);
    printf("%d\n", strcmp(s1,s2));
}
会报warning
0
0
#include<stdio.h>
#include<string.h>

int main(int args, char const *argv[])
{
    char s1[] = "abc";
    char s2[] = "bbc";
    printf("%d\n", strcmp(s1,s2));
}
-1
#include<stdio.h>
#include<string.h>

int main(int args, char const *argv[])
{
    char s1[] = "abc";
    char s2[] = "Abc";
    printf("%d\n", strcmp(s1,s2));
    printf("%d\n", 'a'-'A');
}
32
32
#include<stdio.h>
#include<string.h>

int mycmp(const char* s1, const char* s2)
{
    int idx = 0;
    while (1){
        if (s1[idx] != s2[idx]){
            break;
        } else if s1[idx] == '\0'){
            break;
        }
        idx++;
    }
    return s1[idx] - s2[idx];
}

int main(int args, char const *argv[])
{
    char s1[] = "abc";
    char s2[] = "abc ";
    printf("%d\n", mycmp(s1,s2));
    printf("%d\n", 'a'-'A');
}
-32
32
#include<stdio.h>
#include<string.h>

int mycmp(const char* s1, const char* s2)
{
    int idx = 0;
    while (s1[idx] == s2[idx] && s1[idx] != '\0'){
       
        idx++;
    }
    return s1[idx] - s2[idx];
}

int main(int args, char const *argv[])
{
    char s1[] = "abc";
    char s2[] = "abc";
    printf("%d\n", mycmp(s1,s2));
    printf("%d\n", 'a'-'A');
}
0
32
#include<stdio.h>
#include<string.h>

int mycmp(const char* s1, const char* s2)
{
    while (*s1 == *s2 && *s1 != '\0'){
        s1++;
        s2++;
    }
    return s1[idx] - s2[idx];
}

int main(int args, char const *argv[])
{
    char s1[] = "abc";
    char s2[] = "abc";
    printf("%d\n", mycmp(s1,s2));
    printf("%d\n", 'a'-'A');
}

相关文章

网友评论

      本文标题:字符串函数:字符串函数strlen

      本文链接:https://www.haomeiwen.com/subject/biopvktx.html