c语言 - 字符串总结

(1) 字符串变量名就是首地址。
字符串在输入的时候不需要加上“&”符号,字符串本质就是地址。
注意:打印的时候,倘若是一个*p指向的字符串,打印不需要加解引用p,直接p就可以了。

#include <stdio.h>
int main(){
	void *p;
	char a[99]="字符串";
	p=a;//由于a变量名就是这个字符串的地址,所以不需要加上”&“
	printf("%s",p);//这里打印的时候p代表a的地址,*p代表a地址里面的东西,但是字符串实质上就是一个地址,*p是没有意义的,所以直接p来进行打印字符串
}

*(2) 字符串的一些特点。
在对字符串赋值时可以

#include <stdio.h>
int main(){
	char a[128]="chen"; 
	char c[128]={"chen"};
}

(3)在字符串的末尾都有一个默认的’\0‘,可以用这个来统计字符串的元素个数。
但是也可以自己用<string,h>里面的strlen函数,x=strlen(a)。

#include <stdio.h>
int main(){
	char a[128]="chen"; 
	int count=0;
	for(int i=0;a[i]!='\0';i++){
		count++;
	}
	printf("%d",count);//这里打印出来的是4.
}

在字符串连接的时候一定要记住末尾的’\0‘要加上,不然pta过不去。

char *str_cat(char *s,char *t){
	int x=strlen(s),y=strlen(t);
	for(int i=0;i<=y;i++){//这里写了等于y,因为t的最后一个就是'\0'也给了s。
		s[x+i]=t[i];
	}
	return s;
}

(4)字符串的特殊打印

#include <stdio.h>
int main(){
	char a[128]="chen"; 
	printf("%s",&a[1]);//这里%s用的是a[1]的地址,然后打印的是hen。
}
#include <stdio.h>
int main(){
	char a[128]="chen"; 
	printf("%s",a[1]);//这样的话啥子也打印不出来,因为a[1]只是一个字符,应该用%c打印。
}

(5)字符串初始化问题

#include <stdio.h>
int main(){
	char c[999]="12345";
	c[0]='\0';//这里仅仅是把第一个变成了\0,后面的还是不变,
	printf("%s\n",c);//这里就打印空白
	c[0]='1';//这里本来的/0变成了1,那么后面的就可以打印出来了
	printf("%s\n",c);
}

所以注意以后再使用同一个字符串作为中间变量时,要记得全部初始化。
在这里插入图片描述

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中常用的字符串库函数有很多,以下是其中几个常见的: 1. strlen:用于计算字符串的长度,即不包括终止符'\0'的字符个数。 2. strcpy:用于将源字符串复制到目标字符串中,包括终止符'\0'。 3. strncpy:与strcpy类似,但可以指定复制的最大长度,避免内存溢出。 4. strcat:用于将源字符串连接到目标字符串的末尾,包括终止符'\0'。 5. strncat:与strcat类似,但可以指定连接的最大长度,避免内存溢出。 6. strcmp:用于比较两个字符串的大小,返回值为0表示相等,小于0表示第一个字符串小于第二个字符串,大于0表示第一个字符串大于第二个字符串。 7. strncmp:与strcmp类似,但可以指定比较的最大长度。 8. strchr:用于在字符串中查找某个字符的首次出现位置,并返回该位置的指针。 9. strrchr:与strchr类似,但查找的是字符在字符串中最后一次出现的位置。 10. strstr:用于在字符串中查找某个子串的首次出现位置,并返回该位置的指针。 11. strtok:用于将字符串按照指定的分隔符进行分割,并返回分割后的子串。 这些函数可以在C语言的string.h头文件中找到对应的函数声明。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C语言常用字符串库函数总结](https://blog.csdn.net/weixin_44098461/article/details/115472138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C语言字符与字符串的库函数](https://blog.csdn.net/qq_61213622/article/details/125884482)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值