c语言字符串太难,C语言字符串:不要小看字符串

c语言串的基本运算

1、求串长

int strlen(char *s);         //求串s的长度

【例】printf("%d",strlen(s1));    //输出s1的串长12

2、串复制

char *strcpy(char *to,*from);//将from串复制到to串中,并返回to开始处指针

【例】strcpy(s3,s1);  //s3="dir/bin/appl",s1串不变

3、联接

char *strcat(char *to,char *from);//将from串复制到to串的末尾,

//并返回to串开始处的指针

【例】strcat(s3,"/");    //s3="dir/bin/appl/"

strcat(s3,s2);     //s3="dir/bin/appl/file.asm"

4、串比较

int strcmp(char *s1,char *s2);//比较s1和s2的大小,

//当s1s2和s1=s2时,分别返回小于0、大于0和等于0的值

【例】result=strcmp("baker","baker");    //result>0

result=strcmp("12","12");       //result=0

result=strcmp("joe","joseph")   //result<0

5、字符定位

char *strchr(char *s,char c);//找c在字符串s中第一次出现的位置,

//若找到,则返回该位置,否则返回null

【例】p=strchr(s2,'.');      //p指向"file"之后的位置

if(p) strcpy(p,".cpp");     //s2="file.cpp"

注意:

①上述操作是最基本的,其中后 4个操作还有变种形式:strncpy,strncath和strnchr。

②其它的串操作见c的。在不同的高级语言中,对串运算的种类及符号都不尽相同

③其余的串操作一般可由这些基本操作组合而成

【例】求子串的操作可如下实现:

void substr(char *sub,char *s,int pos,int len){

//s和sub是字符数组,用sub返回串s的第pos个字符起长度为len的子串

//其中0<=pos<=strlen(s)-1,且数组sub至少可容纳len+1个字符。

if (pos<0||pos>strlen(s)-1||len<0)

error("parameter error!");

strncpy(sub,&s[pos],len);      //从s[pos]起复制至多len个字符到sub

c++异常处理机制示例及讲解

c++const成员函数

c语言实例:素数幻方

1.char *:

char *psz = null;

psz = new char[10]; //当然,以上的直接写成char *psz = new char[10];也是一样

memset( psz, 0, 10 );

strcpy( psz, “joise” );

2.cstring:

cstring cstr;

cstr = psz;  字符指针直接赋值

3.string:

string str;

str = psz;   字符指针直接赋值

str = cstr;  cstring变量直接赋值

delete []psz;

加运算

string与cstring差不多,可以直接与char*进行加法,但不可以相互使用+运算符

char*没有+运算,只能使用strcat把两个指针连在一起;

strcat( psz, cstr );//合法

strcat( psz, str );//非法,由此可见,cstring可自动转换为const char*,而string不行

[]运算

cstring最好,当越界时会抛出断言异常;

string与char*下标越界结果未定义;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值