C语言字符函数和字符串函数

islower

这个函数能判断参数部分是否是小写,是小写就返回非0的整数,不是小写就返回0。和 if 函数组合,就能修改字符串的小写了。

int c =0;
char ch[]={"ADjxsfk"};
c = ch[i];
if(islower (c)) //如果是小写就进来,大写返回为0就是假
{
    c-=32;  //小写-32是大写。
}

字符转换函数

tolower 大写字母转小写

toupper 小写字母转大写


char c[] = "abSDF";
int sz = strlen(c);
for(i=0; i <sz; i++)
{
   if(islower(c[i])
   {
     c[i] = toupper(c[i]);
    }
}

如果c[i] 是小写, 就把它转为大写.

字符函数很多,在此不一一赘述。

接下来介绍几个常用的字符串函数。

strlen

strlen计算字符串中字符的个数,头文件是#include <string.h>

strlen真正在使用的时候,确切来说是计算\0之前的字符的个数。如果字符中没有\0

,那么它会往后找,一直找到\0为止,此时返回的就是随机值。因为不知道它会在什么时候找到\0.

strcpy(目标字符,源字符)

是string copy的简写。作用是把一串字符复制到另一串字符中,用源字符取代目标字符,源字符会替代目标字符的 末尾的 \0 。源字符串必须以 \0 结尾。

实质:strcpy会在源字符地址中找\0,把\0前面的字符以及这个\0都拷贝到目标字符中。

char arr1[ ] = { "hello"};

char arr2[ ] = {"world"};

strcpy(arr1,arr2);

拷贝完以后字符串arr1就变成了world。

还有类似的strncpy,多了一个n,也多了一个参数num,单位字节。这个函数比起strcpy更安全可控。如果源字符的个数少于num,那么会在目标的后面追加0,直到满足num个。

strcmp(字符串1,字符串2)   

 strcmp是string compare的简写

它的作用:比较两个字符串大小,比较的是两个字符串ASCII码值的大小。而且是逐一比较。大于返回大于0的数(整型,后面也是),等于返回0,小于返回小于0的数。具体多少可以打印看看,不过一般不是重点。

strcmp用于字符串的比较,比如在结构体中,结合qsort,可以对名字进行排序。

还有作用相同的strncmp,多一个参数num,比较两个字符的前num个字符。

strcat (目标字符,源字符)

strcat用于字符串的追加。比如在字符串hello 后面追加一个world 使目标字符变成helloworld

使用strcat 需要目标字符有\0,源字符也有\0。strcat会从目标字符的\0后面开始追加,一直追加到源字符的\0为止。

相同作用的还有strncat,多了一个参数num,将源函数追加到目标字符后面,会追加\0,如果源字符小于num,那也不会多加内容。

strstr(目标字符,源字符)

strstr用于在第一个字符串里找第二个字符串,找到以后返回与第二个字符串相同的首字符。

目标字符和源字符都需要有\0

例如:目标字符是swimming,源字符是min,strstr会从swimming的第一个字符s开始找,找它是否和源字符的第一个字符m相等,相等就下一个对比。直到找到swimming中的min为止,或者找完也没有min,那就返回空指针。

模拟一下

char * My_strstr (const char* p1, const char *p2)
{
    char *m = (char*)p1;
    char *n = (char*)p2;
    char *flag = (char *)p1;
    if(!*p2)
    {
       return (char*)p1;
     }
    
    while(*m)
    {
       m = (char*)p1;
       n = (char*)p2;
       while(*m && *n && !(*m - *n ))
      {
        m++;
        n++;
      }
       if(!*m)
       {
          return flag;
        }
      flag++;
    }
    return (NULL);
}

int main()
{
   char arr[ ] = {"swimming"};
   char *test = My_strstr(arr,"min");
   strncpy(test,"abc",3);
   printf( "%s\n", arr);
   return 0;
}

*p2放在逻辑语句中是*p2为真,!*p2的意思是*p2为假。在C语言中,0是假,非0是真。所以,

!*p2的意思是*p2为假,也是*p2 == 0;    !(*m - *n)的意思是*m -*n为假,也就是*m- *n ==0,也就是*m == *n。

如果源字符串指向\0,那么直接返回目标字符的地址。

如果源字符有字符串,那么判断m指向的位置。p1,p2不变,用m、n代替它们变换位置,然后用flag记录位置,以便*m与*n在相等又不等以后,可以随时跳回。如果能在目标字符中找到源字符,那么正常返回,返回的位置就是flag的位置。当*m==*n时,flag是不变的,flag储存的是他们相等的第一个字符的位置。当*m != *n时,flag会相加。而n只有在相等时,才会跳向下一个位置。

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蛋白质是生物体中普遍存在的一类重要生物大分子,由天然氨基酸通过肽键连接而成。它具有复杂的分子结构和特定的生物功能,是表达生物遗传性状的一类主要物质。 蛋白质的结构可分为四级:一级结构是组成蛋白质多肽链的线性氨基酸序列;二级结构是依靠不同氨基酸之间的C=O和N-H基团间的氢键形成的稳定结构,主要为α螺旋和β折叠;三级结构是通过多个二级结构元素在三维空间的排列所形成的一个蛋白质分子的三维结构;四级结构用于描述由不同多肽链(亚基)间相互作用形成具有功能的蛋白质复合物分子。 蛋白质在生物体内具有多种功能,包括提供能量、维持电解质平衡、信息交流、构成人的身体以及免疫等。例如,蛋白质分解可以为人体提供能量,每克蛋白质能产生4千卡的热能;血液里的蛋白质能帮助维持体内的酸碱平衡和血液的渗透压;蛋白质是组成人体器官组织的重要物质,可以修复受损的器官功能,以及维持细胞的生长和更新;蛋白质也是构成多种生理活性的物质,如免疫球蛋白,具有维持机体正常免疫功能的作用。 蛋白质的合成是指生物按照从脱氧核糖核酸(DNA)转录得到的信使核糖核酸(mRNA)上的遗传信息合成蛋白质的过程。这个过程包括氨基酸的活化、多肽链合成的起始、肽链的延长、肽链的终止和释放以及蛋白质合成后的加工修饰等步骤。 蛋白质降解是指食物中的蛋白质经过蛋白质降解酶的作用降解为多肽和氨基酸然后被人体吸收的过程。这个过程在细胞的生理活动中发挥着极其重要的作用,例如将蛋白质降解后成为小分子的氨基酸,并被循环利用;处理错误折叠的蛋白质以及多余组分,使之降解,以防机体产生错误应答。 总的来说,蛋白质是生物体内不可或缺的一类重要物质,对于维持生物体的正常生理功能具有至关重要的作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值