[数据结构复习]字符串1

原创 2006年05月30日 00:43:00

1:自已编写求字符串长度函数size_t strlen(const char *s) ==> int Stringlength(const char *s)

  [知识点]:  (摘自高质量程序设计指南--C++/C语言 第二版)

   1: 字符指针的误区:当你使用字符指针来引用一个字符变量的时候,千万要当心,因为C++/C默认char* 表示字符串.例如:
   char ch="a";  //用"a"来初使化字符变量
   char *pChar=&ch; //字符指针指向字符变量
   cout<<pChar<<endl; //错把字符当做字符串
正确的用法是:
   cout<<*pChar<<endl; //取一个字符

     2:用const修饰函数返回值:  如果给 "指针传递" 的函数返回值加const修饰符,那么函数返回值是一种契约性常量,不能被直接修改,并且该返回值只能被赋值给加const修饰的同类型指针(除非强制转型).例如函数:
 const char *GetString(void);
则如下语句将出现编译错误 :
 char *str = GetString();
正确用法是:
 const char* str = GetString();

====代码部分:以下代码在Visal C++6.0环境下编译通过====

/*int Stringlength(const char *s)*/

#include<iostream.h>
#include <stdlib.h>

int Stringlength(const char *s)
{
 //cout<<s<<endl;               //输出值s并非字符串地址,而是字符串,见[知识点一]
 if(s == NULL) exit(1);
 int length = 0;
 char *base = (char *)s;      //或const char *base = s;见[知识点二]
 while((*base++) != '/0') length++;
 return length;
}
void main()
{
 char *ch = "Hello,c++ world!";
 cout<<ch<<endl;
 cout<<*ch<<endl;
 int len = Stringlength(ch);
 cout<<len<<endl;
}

相关文章推荐

定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);

1.将IPV4转换成整数,要求高效。  2.定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);  3.数组a[n]里存有1到n的所有数,除了一个数remove...

【字符串数据结构后缀系列Part1】后缀数组学习笔记

AC自动机好厉害啊www所以我要学后缀自动机和后缀数组啦(有什么关系吗魂淡(╯‵□′)╯︵┻━┻) 没关系这并不妨碍什么= = ——————————————–线割分是我>w 根据方法不同,字符串匹...

Redis-数据结构-1-简单动态字符串

数据结构 1.简单动态字符串  SDS的定义 每个sds.h/sdshdr结构表示一个SDS值: struct sdshdr {     //记录buf数组中已使用字节的数量     //等于SDS所...

数据结构---字符串(1)

1. 替换空格(剑指offer-4) 题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。 解题思路: ...

数据结构与算法分析笔记与总结(java实现)--字符串1:字符串的排列(*)

数据结构与算法分析笔记与总结(java实现)--字符串1:字符串的排列(*)

数据结构-----复习(严蔚敏版)part1

数据结构-----复习(严蔚敏版)part1 线性表部分: 线性结构的特点:在数据元素的非空有限集中,         (1)存在唯一的一个被称作“第一个”的数据元素;         (2)...

一步一步复习数据结构和算法基础-栈的简单应用(1)

栈的特点之一是FILO(先进后出),基于这个特点在这里给出栈的部分基础应用: 1:括号匹配;   所谓的括号匹配就是一个表达式中包括变量、常量、操作符、圆括号,圆括号可以嵌套, 编写程序判断表达式...

数据结构考研复习--线性表1

1 清华大学1994 15分 两个有序 的单链表ha, hb, 请判断链表a是否包含在链表b内。首先创建我...
  • gusgao
  • gusgao
  • 2015年10月17日 12:14
  • 347

【数据结构与算法分析】复习笔记(1)

目前为止,PAT初级题目和题解已经全部发完了。 鼓掌!撒花!     初级题目几乎不需要用到复杂的数据结构,只需要基础的编程知识和简单的逻辑就可以完成。按姥姥的话说,“排序就是最复杂的了”(原话不记得...

一步一步复习数据结构和算法基础-插入排序(1)

插入排序的种类有很多,首先是最简单的直接插入排序; 直接插入排序:基本操作是将一个数据插入到已经排序好的数据里面; #include #include void InsertSort(int ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[数据结构复习]字符串1
举报原因:
原因补充:

(最多只允许输入30个字)