1.字符串连接
#include <stdint.h>
#include <string.h>
#include <stdio.h>
int main() {
char * str = "Hello";
char * str1 = "World";
const uint32_t DIST_LEN = 100;
char dist[DIST_LEN];
memset(dist, 0, DIST_LEN);
strcat(dist,str);
strcat(dist," ");
// strcat(dist,str1);
strncat(dist,str1,4);//仅连接指定长度
puts(dist);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
//合
char * str = "Item";
int a = 100;
float b = 3.14;
char dist[100];
memset(dist, 0, 100);
sprintf(dist, "%s %d,MATH_PI = %.2f", str, a, b);
puts(dist);
//分
char * string = "Item 100";
char buf[10];
memset(buf,0,10);
int c;
sscanf(string,"%4s %d",buf,&c);
printf("String is %s,and int value is %d.\n",buf,a);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main() {
//char-->int
char *str = "100";
int a;
sscanf(str, "%d", &a);
printf("Int value is %d.\n", a);
//char-->double
double value = atof("3.14");
printf("%.2f\n", value);
//int-->char
int b = 1000;
char buf[10];
sprintf(buf, "%d", b);
puts(buf);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char *str = "hello";
char *str1 = "hello";
printf("Result is %d\n", str == str1);// == 表示测试的是*地址*
char str2[] = "hello";
printf("Result is %d\n", str == str2);
//地址
printf("Pointer str %p,Pointer str1 %p,Pointer str2 %p\n", str, str1, str2);
//比较字符串的值 strcmp 比较的是值 *内容*一样的就是0
int result = strcmp(str, str2);
if (result == 0) {
puts("Two string is equal");
} else {
puts("Two string not equal");
}
return 0;
}
#include <string.h>
#include <stdio.h>
int main() {
char *str = "Hello World";
puts(str);
char *str1 = strchr(str, 'o');//截取从前面开始o的后面的内容,含有o
puts(str1);
char *str2 = strrchr(str, 'o');//截取从后面开始o的后面的内容,含有o
puts(str2);
char *str3 = strstr(str, "Wo");//截取wo后面的内容,含有wo
puts(str3);
char str4[10];
memset(str4, 0, 10);
strncpy(str4, str, 4);//截取从开始开始到第四个字符
puts(str4);
char *str5 = str + 3;//截取第3个字符往后的内容。不含有第5个字符
puts(str5);
//截取第4位之后,4---9位(含)之间的内容
char *temp = str + 4;
char str6[10];
memset(str6, 0, 10);
strncpy(str6, temp, 5);
puts(str6);
return 0;
}