10)字符串知识

  1. 字符‘\0‘    ASCII值是0  但是0的ASCII值是48,所以  strlen遇到‘\0‘就停止  但是 sizeof是测得数组的长度,包含‘\0‘和0  滑油输出时’%s‘也是,遇到‘\0‘就停止输出了
  2. strcpy  是会把字符串的那个\0复制过去的  比如:
    1. main(){char s1[]="abcd12349";char s2[]="xyz";int i;strcpy(s1,s2);for (i=0;i<10;i++) printf("%c|",s1[i]);}打印出:x|y|z| |1|2|3|4|9| |可以看出,z后面那个字符覆盖了。如果用printf("%s",s1); 输出,程序只打印出 xyz, 因为下一个是字符串结束符,结束符以后的12349 尽管还在s1里,但不再考虑。
  3. strstr(指针1,指针2)  返回值是一个指针,这个指针指向在  ‘指针1’中 ‘指针2’的首地址,比如
    1. #include<stdio.h>
      #include<string.h>
      #include"c.h"
      int main()
      {
      char *p="123456123789123";
      char a[]="78";
      p=strstr(p,a);
      printf("%s",p);
      return 0;
      }
    2. 就是在p中是否有a  这个结果输出:789123

  

  1.   我搜索一个长的字符串里面有多少个小的串--就用strlen和strstr

        1.  1 //函数的实现
           2 #include<stdio.h>
           3 #include<string.h>
           4 #include"c.h"
           5 int main()
           6 {
           7     char *p="123456123789123";
           8     int c=0;
           9     char a[]="123";
          10     /*p=strstr(p,a);*/
          11
          12     while(p!=NULL)
          13     {
          14     p=strstr(p,a);//判断这个p是否有a,要是有 那个p就指向在之前那个p的位置,要是没有,就指向为空
          15     if(p!=NULL)//说明在p中有a,
          16     {
          17     p=p+strlen(a);//p得偏移啊,不然,就老是循环(就是,饿哦没有这个,那个p一直指向
              "123456123789123"  加了这个代码,p就指向了 456123789123
          18 c++; 19  } 20 21  } 22 printf("%d\n",c); 23 return 0; 24 }
  2.   两头堵模型  形如   ”          abcdefg          “  这样的字符串,前后都有空格的,我们用两个指针进行前后堵     比如  ”     abc      adsaf  sfdsf    fasdfs    fasdf    “  求这个里面包含的非空格字符串的个数  那么就用两个指针  一个指向头部,一个指向尾部。
  3. 因为那个数组有100个元素,所以结果是100

原文地址:https://www.cnblogs.com/xiaoyoucai/p/8176359.html

时间: 2024-08-06 14:26:49

10)字符串知识的相关文章

项目管理【03】 | 项目管理基础-项目管理5大过程组与10大知识领域

项目管理就是将知识.技能.工具和技术应用于项目活动之中,以满足项目的要求.为了使项目取得成功,项目团队必须选用所必须的合适过程,利用事先确定的途径,权衡对范围.时间.成本.资源和风险互相冲突的要求,以提交高质量的成果.在实践中,大多数经验丰富的项目管理人员认识到,管理项目的办法不止一个.本文以及后续的连载文章中,都将以<项目管理知识体系指南>2012版为参考,进行项目管理实践的分享. 24.PMI<项目管理知识体系指南>第五版中,将项目管理过程组归纳为5个,分别是:启动.计划.执行

Python3 列表,元组,字典,字符串知识小结

一.知识概要 1. 列表,元组,字典,字符串的创建方式 2. 列表,元组,字典,字符串的方法调用 3. 列表,元组,字典,字符串的常规用法 二.列表 1 # 列 表 2 3 # 列表基础 4 list_1 = ['a','b','c','d','e','f'] 5 list_2 = ['apple','banana','watermelon','strawberry','banana','apple'] 6 print(list_1) 7 print("##########") 8 #

C中字符串知识学习小记

1:在C中我们说"H"这是一个字符串,总共占有2个字节,后面有一个'\0'伪零结束符. 'H'这是一个数字.通过下面程序进行验证. #include <stdio.h> int main(void) { printf("%d %d\n",sizeof("c"),sizeof('s')); } 2:字符串创建过程 #include <stdio.h> int main(void) { char * p = "hel

字符串知识储备

abaaabb bbaabba 0100011 1100110 如何O(1)判断两个字符串相等 一个想法是先转成2进制,再转成10进制,hash成整数值,O(1)比较 但是这个hash复杂度却是与串长同阶,类似于a*base^2+b O(1)时间知道hash值就能O(1)比较两个字符串是否相等 baabc b ba baa baab baabc ba 记录前缀的hash值 1*3 ^3+0*3^2+ Hash[l~r] Pre[x]=Pre[x-1]*26+(S[x]-'a') Pre[r]=H

Linux 10字符串命令病毒的处理记录

刚上线的测试服务器不停的向外发包,且CPU持续100%,远程登录后查看发现有一长度为10的随机字符串进程,kill掉,会重新生成另外长度为10的字符串进程.删除文件也会重复生成,非常痛苦.查阅crond相关日志,发现实际执行的内容为/lib/libudev.so ,以此为关键字进行查询,找到如下内容: 1,網路流量暴增,使用 top 觀察有至少一個 10 個隨機字母組成的程序執行,佔用大量 CPU 使用率.刪除這些程序,馬上又產生新的程序. 2,檢查 /etc/crontab 每三分鐘執行 gc

python基础10 字符串操作,字典操作,集合操作

本节内容: 字符串操作 字典操作 集合操作 字符串操作 概述 字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等.请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符. 如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括起来表示: "I'm OK" 类似的,如果字符串包含",我们就可以用'

C# 字符串知识整理

系统处理文本的方式 [新知识点].NET Framework .NET Framework的定义:其包含了一个公共语言运行时(Common Language Runtime),和一个类库 其中有几个概念: CLI公共语言基础结构(Common Language Interface):CLI定义了可执行代码和运行环境的规范. 运行环境:虚拟运行系统(Virtual Execution System,VES). CTS通用类型系统(Common Type System):CTS是CLI的核心. C#

字符串知识大全

String类型是字符串的对象包装类型,可以像下面这样使用String构造函数来创建. var stringObject = new String("hello world"); String对象的方法也可以在所有基本的字符串值中访问到.其中,继承的valueOf().toLocaleString()和toString()方法,都返回对象所表示的基本字符串值. String类型的每个实例都有一个length属性,表示字符串中包含多个字符.来看下面的例子. var stringValue

[转载]Java程序员掌握的10大项知识体系--精通太难说出口

1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer. HtmlConverter.jar. java.javac.javadoc.javap.javaw.native2ascii.serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解. 3.工具:必须至少熟练使用一种IDE的开发工具,例如Eclip