#include<stdio.h>
#include<stdlib.h>
#include<string.h>typedef char String[250];/*  0索引号单元存放串的长度 */void setString(String str, char *chs)
{str[0] = strlen(chs);int i;for(i=1;i<=str[0];i++)str[i] = *(chs+i-1);
}void copyString(String in, String out)
{int i;for(i=0;i<=in[0];i++)out[i] = in[i];
}
/*  字符串比较 */
int cmpString(String a, String b)
{int i;for(i=0;i<=a[0]&&i<=b[0];i++){if(a[i] != b[i])return 0;}return i-1;
}
/* 用T返回S1和S2联接而成的新串*/
void catString(String a, String b, String c)
{c[0] = a[0]+b[0];int i;for(i = 1;i<=a[0];i++)c[i] = a[i];for(i = 1;i<=c[0];i++)c[i+a[0]] = b[i];
}
void showString(String a)
{printf("show:");int i;for (i=1;i<=a[0];i++)printf("%c",a[i]);printf("\n");
}
/* 用Sub返回串S的第pos个字符起长度为len的子串。 */
void subString(String a, String b, int index, int length)
{if(index<1||index>a[0]||length<=0||length>index+a[0]){b[0] = 0;return;}else{b[0] = length;int i;for(i=1;i<=length;i++){b[i] = a[index+i];}}
}int main(int argc, char*argv[])
{String a;setString(a,"rong");showString(a);String b;setString(b,"tao12321v");showString(b);String c;catString(a,b,c);showString(c);String d;subString(c,d,3,3);showString(d);return 0;
}

结果:

-bash-4.1$ gcc -o a Demo.c
-bash-4.1$ ./a
show:rong
show:tao12321v
show:rongtao12321v
show:gta
-bash-4.1$

C语言串 typedef char String[MaxLength + 1]相关推荐

  1. C语言之typedef详解

    2019独角兽企业重金招聘Python工程师标准>>> typedef可以看作type define的缩写,顾名思义就是类型定义,也就是说它只是给已有的类型重新定义了一个方便使用的别 ...

  2. BSTR 、LPCTSTR、CString附C语言串基本操作

    CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指 ...

  3. 串的堆分配存储c语言,数据结构c语言串的堆分配存储源程序

    <数据结构c语言串的堆分配存储源程序>由会员分享,可在线阅读,更多相关<数据结构c语言串的堆分配存储源程序(7页珍藏版)>请在人人文库网上搜索. 1.include#inclu ...

  4. char string 区别

    由于在C++项目中,经常遇到处理字符方面的问题,故借此机会整理一下,让自己对于char , string 等有进一步的了解. 基本概念 由单引号括起来的一个字符成为char型字面值.双引号括起来的零个 ...

  5. 水滴石穿C语言之typedef的问题

    1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程中使用typede ...

  6. 灵活而奇特的C++语言特性——typedef aliases

    学习了博主的<漫谈继承技术>系列博文之后,相信大家都有所收获吧!这次博主将和大家一起探讨 <灵活而奇特的C++语言特性> ,主要包括引用.常量(const).常量表达式(con ...

  7. MFC中char*,string和CString之间的转换

    string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的: char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的.所以熟练掌握三者之间的转换十 ...

  8. C++自学07:字符串(char/string/wchar_t/char16_t/char32_t)

    示例:字符串abc转换成ab6 char name[] = "abc"; name[2]=char(6+48);//48是ascii表中,char和int看起来相等的差值 C++中 ...

  9. C语言串的基本操作(assign,compare,concat,index,insert,delete,replace)

    C语言串的基本操作 结构体用C++的String代替 代码 #include <string.h> #include <stdio.h> #include <stdlib ...

最新文章

  1. Q币才是腾讯真正的世界级产品
  2. swift 实践- 10 -- UIProgressView
  3. 树形数据深度排序处理示例(递归法).sql
  4. 【Kotlin】Kotlin 自定义组件 ( 自定义 View | 自定义 SurfaceView )
  5. 【Flask】Jinja2之测试器的应用
  6. python百题百练 二级题目_计算机二级有必要考吗
  7. 循环节长度 java,第六届蓝桥杯java试题-循环节长度
  8. c#枚举类似于java_如何在Java中获得类似于C的性能
  9. 集训04-06 (c++实现)
  10. 2014-01-01
  11. 190729知识笔记
  12. 10.2.5 监视文件.
  13. 文件系统的设计与实现(操作系统课程设计)
  14. Win11 如何跳过微软注册界面
  15. webserver的使用
  16. 新版标准日本语中级_第三十二课
  17. MTK平台的srvcc相关故障
  18. zic2xpm - 将 ZIICS 象棋片段 (chess pieces) 转换为 XBoard (XPM/XIM) 片段的工具。
  19. MPEG Audio 简述
  20. 南宁市第二十六中学:教研路漫漫,花香伴我行

热门文章

  1. 2019.8.21页面功能的实现
  2. empty()、isset()、is_null()的区别
  3. hdu-5703 Desert(水题)
  4. 2015.5.6(servlet基础)
  5. OMS开发随笔之开发和部署要点
  6. 募捐:请帮助一名 Linux 程序员的女儿
  7. 实现添加商品信息功能
  8. oracle decode别名,Oracle中decode函数用法 VelHong
  9. jws webservice 跳过https认证_基于OAuth2的OIDC (OpenId Connect)身份认证
  10. ajax后台如何把对象转为json_SM后台数据与前端(PC、M站、Android、IOS)的交互——页面渲染...