c语言中的字符串
案例分析:
#include <stdio.h>
#include <malloc.h>
int main()
{
char s1[] = { 'H', 'e', 'l', 'l', 'o' };
char s2[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
const char* s3 = "Hello";
char* s4 = (char*)malloc(6 * sizeof(char));
s4[0] = 'H';
s4[1] = 'e';
s4[2] = 'l';
s4[3] = 'l';
s4[4] = 'o';
s4[5] = '\0';
printf("s1=%s\n", s1);
printf("s2=%s\n", s2);
printf("s3=%s\n", s3);
printf("s4=%s\n", s4);
free(s4);
return 0;
}
运行结果:
字符串长度
使用一条语句实现strlen (利用递归)
#include <stdio.h>
#include <assert.h>
size_t strlen(const char* s)
{
return ( assert(s), (*s ? (strlen(s+1) + 1) : 0) );
}
int main()
{
printf("%d\n", strlen( NULL));
return 0;
}
不受限制的字符串函数
#include <stdio.h>
#include <assert.h>
size_t strlen(const char* s)
{
size_t length = 0;
assert(s);
while( *s++ )
{
length++;
}
return length;
}
int main()
{
printf("%d\n", strlen("123456789"));
return 0;
}