指针创建STRING函数
2021-04-10 23:34
661 查看
方法一:
利用指针特性进行运算
#include <stdio.h> #include <string.h> #include <windows.h> //计算字符串长度不用string函数 int strl(char* p,int sz) { int i; int count = 0; for (i=0;i<sz;i++) { printf("%d\n", *p); if (*p != '\0') { count =count + 1; p ++; } else { p ++; } } return count; } int main() { char ch[] = { 'a','b','\0' }; int sz = sizeof(ch) / sizeof(ch[0]); int a=strl(ch,sz); printf("%d \n", a); }
方法二:
两个指针相减得位数:
#include <stdio.h> #include <string.h> int strl(char* p, int sz) { char* start = p; char* end = p; while (*end != '\0') { end = end + 1; } return end- start; } int main() { char ch[] = { 'a','b','c','\0' }; int sz = sizeof(ch) / sizeof(ch[0]); //测试 /*printf("%d \n", sz);*/ int b = strl(ch, sz); printf("ch数组字符串长度:%d\n", b); }
相关文章推荐
- c++智能指针的创建(转载)
- 异或指针双链表的创建、打印(严奶奶数据结构练习2.34)
- 创建指针动态数组,指针的值
- 提高篇--创建一个1~30的随机数用来测试指针的运算
- C++如何通过指针创建二维数组
- 错误 "xxxx":C++提示非标准语法;请使用 "&" 来创建指向成员的指针
- java 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
- 如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉
- 没有躲过的坑--new一个指针数组、以及创建动态二维数组
- 创建位图并得到位数据区的指针
- strlen的递归,常规(创建计数器),以及指针实现
- C++动态创建二维数组,二维数组指针
- 结构体指针和结构体对象的创建、置空、赋值以及与string的转换
- error C3867: “A::fun1”: 函数调用缺少参数列表;请使用“&A::fun1”创建指向成员的指针
- Effective STL 第7条:如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉
- 没有躲过的坑--new一个指针数组、以及创建动态二维数组
- C语言:结构体中一级指针和二级指针的创建与释放示例
- 函数调用缺少参数列表;请使用“&Student::Printf”创建指向成员的指针 问题解析
- c++智能指针的创建[转载]
- 创建一个链队列,该队列要么是空队列,非空时队头指针指向首元结点,队尾指针指向队尾结点。将本班学生信息(含学号、姓名、性别、年龄)入队,编写算法实现链队列的初始化、入队、出队,获取队头元素、获取队尾元素