1: 数组定义字符串
char str1[50]="aabacgaabgcaab";
char str2[12]="aab";
char str3[12]="";
char *message = "Hello World!";
// 上面的语句也可以拆分成下面两句
char *message;
message = "Hello World!"; // 这句话看起来像是字符串复制,其实不是,只是涉及到指针操作
2: 求字符串的长度
求字符串的长度使用的是 :int strlen ( const char *str ),求数组的长度用sizeof
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
char str1[50]="aabacgaabgcaab";
char str2[12]="aab";
char str3[12]="";
printf("%d\n",strlen(str1));
printf("%d\n",strlen(str2));
printf("%d\n",strlen(str3));
printf("%d\n",sizeof(str1));
}
3:字符串的复制和连接:
原型:char *strcpy( char *dest, const char *src )
功能:把src所指向的以 '\0'结尾的字符串复制到dest所指向的数组中(strncpy,代表只拷贝前n个)返回值:返回参数dest字符串起始地址
返回值:返回参数dest字符串起始地址
原型:char *strcat(char *dest, const char *src)功能:将参数src字符串拷贝到参数dest所指的字符串尾返回值:返回参数dest的字符串起始地址
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
char str1[50]="aabacgaabgcaab";
char str2[12]="aab";
char str3[12]="";
char src[10]={'h','\0','l','l','o','w','r','d'};
char *ans="ted";
strcpy(str3,ans);
printf("%s\n",str3);
printf("%s\n",strcat(str1,str2));
}
4:字符串的比较:
原型: int strcmp( char *str1, char *str2 )
功能:比较str1和str2的大小;
返回值:相等返回0,str1大于str2返回1,str1小于str2返回-1;
#include<string.h>
#include<stdio.h>
int main(){
char *s1="ABC";
char *s2="AbC";
char *s3="AbC";
int ans = strcmp(s1,s2);
printf("%d\n",ans);
printf("%d\n",strcmp(s1,s3));
printf("%d\n",strcmp(s2,s3));
return 0;
}
5: 字符串匹配算法:strstr
https://blog.csdn.net/weixin_42528089/article/details/99065667
6: 字符串和数值的相互转换
atof():将字符串转换为双精度浮点型值。
atoi():将字符串转换为整型值。
itoa():将整型值转换为字符串。
ltoa():将长整型值转换为字符串。
7: %c 代表单个字符,%s 代表字符串
8: 字符串的遍历和输出输入
例子1:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char *hex = "ACB1B";
int len,i;
len=strlen(hex);
printf(" %s\n",hex);
for(i=0;i<len;i++){
printf("%c\n",hex[i]);
}
}
例子2:
#include <stdio.h>
#include <string.h>
int main(){
char str1[30] = {0};
char str2[30] = {0};
char str3[30] = {0};
//gets() 用法
printf("Input a string: ");
gets(str1);
//scanf() 用法
printf("Input a string: ");
scanf("%s", str2);
printf("\nstr1: %s\n", str1);
printf("str2: %s\n", str2);
for(int i=0;i<strlen(str2);i++){
printf("%c ",str2[i]);
}
return 0;
}