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');
}
网友评论