温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言字符串怎么表示

发布时间:2022-04-18 10:20:49 来源:亿速云 阅读:268 作者:iii 栏目:开发技术

这篇文章主要介绍了C语言字符串怎么表示的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言字符串怎么表示文章都会有所收获,下面我们一起来看看吧。

    字符串表示方式

    字符串常量

    C语言字符串怎么表示

    用双引号括起来的内容称为字符串常量,例如:"Hello, World!"为一个字符串常量。双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串存储在内存中。

    字符串常量属于静态存储类别。当在函数中使用字符串常量时,该字符串只会被存储一次,用双引号括起来的内容被视为指向该字符串存储位置的指针,如以下例程所示:

    /* strptr.c -- 把字符串看做指针 */
    #include <stdio.h>
    
    int main(void) {
    
        printf("%s, %p, %c\n", "Who", "you", *"are");
    
        return 0;
    }

    程序输出结果如下:

    Who, 0x400668, a

    #strlen

    strlen函数在使用前需要添加一个头文件:#include<string.h>

    函数声明:size_tstrlen(const char *s);

    函数功能:获取字符串的长度,不包括&lsquo;\0&rsquo;。

    返回值:返回字符串中的字符个数(空格也算一个字符)

    例:

    #inclue<stdio.h>
    #include<string.h>
    int main()
    {
    	char str[]="hello world";
    	int len=strlen(str);
    	printf("%d",len);//len=11
    }

    #strcpy和strncpy

    ##strcpy

    函数声明:char *strcpy(char *dest,const char *src);

    函数说明:拷贝src指向的字符串到dest指针指向的内存中,&lsquo;\0&rsquo;也会拷贝过去。

    函数返回值:目的内存的地址。

    ※※注意:在使用此函数时,必须保证dest指向的内存空间足够大,否则会出现内存污染。

    例:

    #include<stdio.h>
    #include<string.h> 
    int main()
    {
    	char str[]="hello world";
    	char s[]="hello earth";
    	strcpy(str,s);
    	printf("%s",str);//打印结果是hello earth
    }

    ##strcnpy

    函数声明:char *strncpy(char *dest,const char *src,size_tn);

    函数说明:将src指向的字符串前n个字节,拷贝到dest指向的内存中。

    返回值:目的内存的首地址。

    ※※注意:1.strncpy不拷贝&lsquo;\0&rsquo;

                     2.如果n大于src指向的字符串中的字符个数,则在dest后面填充n-strlen(src)个'\0'

    例:

    #include<stdio.h>
    #include<string.h> 
    int main()
    {
    	char str[]="hello world";
    	char s[]="hello earth";
    	strncpy(str,s,8);
    	printf("%s",str);
    }

    C语言字符串怎么表示

    #strcat和strncat

    ##strcat

    函数声明:char *strcat(char *dest,const char *src);

    函数功能:strcat函数追加src字符串到dest指向的字符串的后面,追加的时候会追加'\0'。

    ※※注意:保证dest指向的内存空间足够大。

    例:

    #include<stdio.h>
    #include<string.h> 
    int main()
    {
    	char str[100]="hello world";
    	char s[]="hello";
    	strcat(str,s);
    	printf("%s",str);
    }

    C语言字符串怎么表示

     ##strncat

    函数声明:char *strncat(char *dest,const char *src,size_tn);

    追加src指向的字符串的前n个字符,到dest指向的字符串的后面。

    ※※注意:如果n大于src的字符个数,则只将src字符串追加到dest指向的字符串的后面,追加的时候会追加'\0'

    例:

    #include<stdio.h>
    #include<string.h> 
    int main()
    {
    	char str[100]="hello world";
    	char s[]="hello";
    	strncat(str,s,4);
    	printf("%s",str);
    }

    C语言字符串怎么表示

    #strcmp和strncmp

    ##strcmp

    函数声明:int strcmp(const char *s1,const char *s2);

    函数说明:比较s1和s2指向的字符串的大小。

    比较的方法:逐个字符去比较ASCII码,一旦比较出大小则返回。

    返回值:

    如果s1指向的字符串大于s2指向的字符串,返回1

    如果s1指向的字符串小于s2指向的字符串,返回-1

    如果相等的话返回0

    例:

    #include<stdio.h>
    #include<string.h> 
    int main()
    {
    	char str1[]="hello world";
    	char str2[]="hello world";
    	int ret;
    	ret=strcmp(str1,str2);
    	printf("%d",ret);//ret==0
    }

    ##strncmp

    函数声明:int strncmp(const char *s1,const char *s2,size_t n);

    函数说明:比较s1和s2指向的字符串中的前n个字符

    例:

    #include<stdio.h>
    #include<string.h> 
    int main()
    {
    	char s1[]="hello world";
    	char s2[]="hello earth";
    	int ret;
    	ret=strncmp(s1,s2,5);
    	if(ret>0)
    		printf("s1的前五个字符大于s2的前五个字符\n"); 
    	else if(ret<0)
    		printf("s1的前五个字符小于s2的前五个字符\n"); 
    	else
    		printf("s1的前五个字符等于s2的前五个字符\n"); 
    }

    关于字符串的知识点我暂时梳理了这么多,还有许多未涉及到的地方,希望大家给予意见,接下来让我们做一道比较有意思的题目。

    #题目

    输入n行身份证号,按照年龄排序(从大到小)并输出。

    #include<stdio.h>
    #include<string.h>
     
    int main()
    {
    	char a[100][100],birth[100][100],s[100];
    	int n,i,j;scanf("%d",&n);
    	gets(s);
    	for(i=0;i<n;i++)
    	{
    		gets(a[i]);
    		strncpy(birth[i],a[i]+6,8);
    	}
    	for(i=0;i<n;i++)
    	{
    		for(j=i+1;j<n;j++)
    		{
    			if(strcmp(a[j],a[i])<0)
    			{
    				strcpy(s,a[j]);
    				strcpy(a[j],a[i]);
    				strcpy(a[i],s);
    			}
    		}
    	}
    	for(i=0;i<n;i++)
    	{
    		printf("%s\n",a[i]);
    	}
     }

    关于“C语言字符串怎么表示”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C语言字符串怎么表示”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI