• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C语言字符串函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
注意!!!要严格区分单引号和双引号!单引号内只能是一个字符,而双引号是字符数组
#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { char mystr[]="猴子和我一起来,我和猴子一样帅"; gets(mystr); system("pause"); return EXIT_SUCCESS; }

puts()-----输出字符串并换行

gets()-----获取字符串,可以有空格

scanf-----获取输入,由于gets()和scanf()无法获知数组的大小,只有遇到结束符或换行符才终止,不可以有空格,因此可能导致数组越界,所以要加上宏 #define _CRT_SECURE_NO_WARNINGS

要么添加在代码的开头,要么添加在IDE的设置项中,如下

 

fgets() 三个参数 字符指针变量名  长度 输入流(std):两种情况----输入信息小于等于字符指针长度,会在输入的末尾加上\n\0,或者,在超过长度时,等待换行符\n(也就是当我们敲击键盘回车键的时候)的输入,把\n替换为\0;由此看出fgets()比gets()安全

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char cpc[10] = { 0 };
    char cj[10] = { 0 };
    printf("%p\n",cpc);
    printf("%p\n", cj);
    fgets(cpc, sizeof(cpc), stdin);
    printf("%s\n", cpc);
    system("pause");
}

 

scanf("%*d%s")%*d忽略数字,*c忽略字符,如果忽略的是字符串就麻烦了,要写字符串指针长度个*c(例如有100就写100个)

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char wenwa[]="cpc";
    printf("%-5s",wenwa);
 printf("%5s",wenwa);
system("pause");
return EXIT_SUCCESS;
}

 strlen()字符串长度

int main()
{
   char wenwa[]="sunshine is lady rock you like a baby";
   int mylen = strlen(wenwa);
   printf("%d\n",mylen);
   printf("%d\n",sizeof(wenwa));    
   system("pause");  
   return EXIT_SUCCESS;   
}

strcpy(目标地址,源地址)字符串拷贝

char target[];
char src[];
if (strcpy(target,src)!=NULL)
{
     
}

strncpy()

int main()
{
     char mywords[]="喜欢陈培昌";
     char hiswords[];
     strcnpy(hiswords,mywords);
     hiswords[5]=0;
     printf(hiswords);
     return EXIT_SUCCESS;  
}

 strcat()

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
   char myarr[] ={0};
   char myarr2[]={0};
   gets(myarr);
   gets(myarr2);
   printf(strcat(myarr,myarr2));
   system("pause");
   return EXIT_SUCCESS;  
}

strncat()

int main()
{
    
    char myarr[8] = { 0 };
    char myarr2[10]={ 0 };
    gets(myarr);
    gets(myarr2);
    strncat(myarr, myarr2, sizeof(myarr)-strlen(myarr) - 1);
    puts(myarr);
    system("pause");
    return EXIT_SUCCESS;
}

sprintf()向数组打印字符串

strchr(a,'c')在a中找到‘c’,并返回位置。

char *c = strchr(a,'c')

strstr (a,"345")---查找字符串,找不到,返回NULL

strtok() 分割字符串

char *p = strtok();

printf(p)

atoi()

char wenwa[] ="789";
printf(atoi(wenwa));

wenwa是char数组
atoi()把数组转换为整数,两者地址不一样

一种怪异的把字符串转换为数字的方法

char mynum[] = "456";

(mynum[0]-0x30)*1000;
+
(mynum[1]-0x30)*100;
+
(mynum[2]-0x30)*10;

 字符串逆置

 查找数组中第二大的数字

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int mynum[]={43,88,56,24,78,12,8}; 
   return EXIT_SUCCESS;
}

 strlen字符串长度不包括末尾的'/0'

sizeof()返回的是数组一共占据了多少字节的内存空间

sprintf存在缓冲区溢出的问题。

strtok()字符串拆分

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#堆VS栈值类型VS引用类型发布时间:2022-07-13
下一篇:
C语言指针/指向指针的指针发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap