54解析字符串

我们平常电脑上,最多的就是图片和字符串以及音频和视频文件。
所以,如何处理这4种类型的数据,是我们学习很重要的目的。

字符串<图片<音频<视频

char l_v1[100]= "你1好2吃饭了吗abc"; strlen函数可以计算出在内存里面占了多少个字节。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[5] = { 0 };
/
fgets(l_v1,sizeof(l_v1),stdin);
printf("%d",sizeof(l_v1 ));//l_v1长度
printf("%d",strlen(l_v1));//输入实际长度
//string length的缩写;
system("pause");
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int 取字符串长度(char *p_字符串地址){
int l_长度=0;
while(*p_字符串地址!=0){
l_长度=0;
l_长度+=1;
p_字符串地址++;}
return l_长度;
}
void main() {
char l_v1[5]={0};

printf("%d",取字符串长度(l_v1));
//string length的缩写;
system("pause");
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int 求汉字长度(char *p_字符串长度) {
int 计算长度 = 0;
for (size_t i = 0; i < strlen(p_字符串长度); i++) {
if (p_字符串长度[i] < 0) {
计算长度 += 1;
}
}
计算长度 /= 2;
return 计算长度;
}
void main() {
char l_v1[100] = "1234你好吗asd";//先判断内存字符串数字规律(ascll ,gbk, db1231,编码大小求)
printf("%d ", 求汉字长度(l_v1));
system("pause");
}




strcat(l_v1,l_v2);  把l_v1和l_v2合并,结果放到l_v1

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[ 50 ] = "你好";
char l_v2[50] = "吃饭了吗";
strcat(l_v1, l_v2);//等于strncat(l_v1, l_v2,strlen(l_v2))
printf("%s ", l_v1);
system("pause");
}//把l_v2放到l_v1要注意l_v1在栈空间


strncat(l_v1,l_v2,5);  把l_v1和指定的l_v2的文本截取合并,结果放到l_v1

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[ 50 ] = "你好";
char l_v2[50] = "吃饭了吗";
strcat(l_v1, l_v2,2);//把l_v2头两个字节放到来l_v1里
printf("%s ", l_v1);
system("pause");
}//把l_v2放到l_v1要注意l_v1在栈空间


注意事项:缓存区长度.


strncmp(l_v1,l_v2,5)把l_v1字符串和l_v2字符串的前5个字节进行比较.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>


void main() {
char l_v1[] = "你好";
char l_v2[] = "你好";
int result=strcpm(l_v1, l_v2);
if (result == 0) {
printf("相同 ");
}
else {
printf("不同 ");
}
system("pause");
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[ 50 ] = "你好";
char l_v2[50] = "吃饭了吗";
strncmp(l_v1, l_v2, 2);//把L_v2里面前两个字节与l_v1比较,大小是否相同
printf("%d ", strncmp(l_v1, l_v2, 2));
system("pause")



strcpy(l_v1,l_v2)  把l_v2字符串复制一份到l_v1中.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[50] = "你好";
char l_v2[50] = "吃饭了吗123";
strcpy(l_v1, l_v2);
printf("%s ", l_v1);
system("pause");
}//把l_v2复制到l_v1要注意l_v1在栈空间


strncpy(l_v1,l_v2,5)  把l_v2字符串前5个字节复制一份到l_v1中.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[50] = "你好";
char l_v2[50] = "吃饭了吗123";
strcpy(l_v1, l_v2,2);//把l_v2前两个字节复制到l_v1
printf("%s ", l_v1);
system("pause");
}//把l_v2复制到l_v1要注意l_v1在栈空间


sprintf和printf的区别.
sprintf和printf类型,唯一的区别是增加了一个参数,第一个参数是一个char数组
一个把结果显示到屏幕上,一个把结果输入到另一个字符串数组中.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[50] = "你好";
char l_v2[50] = { 0 };
printf("%s ", l_v1);
sprintf(l_v2, "%d+%d=%d", 1,2 ,1+2);
printf("%s ", l_v2);
system("pause");
}

原文地址:https://www.cnblogs.com/xiaodaxiaonao/p/7818643.html