3.4 C提高 2 3
1.C提高 字符串拷贝的几种方法
点击查看代码
for (i = 0; src[i] != '\0'; i++)
{
dst[i] = src[i];
}
for (i = 0; *(src+i) != '\0'; i++)
{
*(dst+i) = *(src+i); //dst[i] = src[i]
}
//补结束符
//dst[i] = 0;
*(dst + i) = 0;
while (*src != 0)
{
*dst = *src;
dst++;
src++;
}
*dst = 0;
2.字符串的查找
strstr函数
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;
点击查看代码
char *p = "11abcd111122abcd333abcd3322abcd3333322qqq";
int n = 0;
do
{
p = strstr(p, "abcd");
if (p != NULL)
{
n++; //累计个数
//重新设置查找的起点
p = p + strlen("abcd");
}
else //如果没有匹配的字符串,跳出循环
{
break;
}
} while (*p != 0); //如果没有到结尾
点击查看代码
int main01(void)
{
char *p = " abcdefg ";
int begin = 0;
int end = strlen(p) - 1;
int n = 0;
//从左边开始
//如果当前字符为空,而且没有结束
while ( p[begin] == ' ' && p[begin] != 0)
{
begin++; //位置从右移动一位
}
//如果当前字符为空,而且没有结束
while ( p[end] == ' ' && p[end] != 0)
{
end--; //往左移动
}
n = end - begin + 1;
printf("n = %d\n", n);
printf("\n");
system("pause");
return 0;
}
点击查看代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct MyStruct
{
int a;
int b;
}MyStruct;
void fun(MyStruct *p)
{
//指针能变
//p = NULL;
//指针指向的内存也可以变
//p->a = 10; //ok
}
void fun1(MyStruct const *p)
{
//p = NULL; //ok
//p->a = 10; //err
}
void fun2(MyStruct * const p)
{
//p = NULL; //err
p->a = 10;//ok
}
//p只读
void fun3(MyStruct const * const p)
{
MyStruct tmp;
tmp.a = p->a;
}
int main(void)
{
//const修饰一个变量为只读
const int a = 10;
//a = 100; //err
//指针变量, 指针指向的内存, 2个不同概念
char buf[] = "aklgjdlsgjlkds";
//从左往右看,跳过类型,看修饰哪个字符
//如果是*, 说明指针指向的内存不能改变
//如果是指针变量,说明指针的指向不能改变,指针的值不能修改
const char *p = buf;
// 等价于上面 char const *p1 = buf;
//p[1] = '2'; //err
p = "agdlsjaglkdsajgl"; //ok
char * const p2 = buf;
p2[1] = '3';
//p2 = "salkjgldsjaglk"; //err
//p3为只读,指向不能变,指向的内存也不能变
const char * const p3 = buf;
//如何引用另外.c中const变量,了解
extern const int aa; //不能再赋值,只能声明
printf("aa = %d\n", aa);
//const修饰的变量,定义时初始化
//在c语言中, const是一个冒牌货
const int b = 10;
//b = 100; //err
int *q = &b;
*q = 22;
printf("%d, %d\n", b, *q);
printf("\n");
system("pause");
return 0;
}
本文来自博客园,作者:逆向狗,转载请注明原文链接:https://www.cnblogs.com/Agtw/p/17177904.html