字符串的总结

*一. 字符串函数总结
* 1) 比较操作
strcmp比较  strcmp("abc", "abc") == 0  返回值 = 0 相等。 > 0 前者 > 后者,小于0是前者小于后者
* strncmp比较 strncmp("endover", "end", 3); 前两个字符串中 前3个字符比较
* 2) strcat  链接操作
* strcat(str,ptr)是将字符串ptr内容连接到字符串str后,然后得到一个组合后的字符串str
3) strlen()  字符个数,遇到\0统计字符结束,不包含\0
* "hello\0abc\0def"->strlen()  -> 5
* 4)strcpy  拷贝函数
* strncpy(char*, const char*, size_t count);
*,定义于 string.h,char *strncpy(char *dest, const char *src, int n),把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。
*5) scanf 字符串输入% s    gets_s   获取字符串
*
* 6) fgets()     fputs->fread   fwrite
* 获取字符操作  打印字符  scanf("%c", )  printf("%c")
*
* 7) getchar()    putchar()
*
* 4. 动态内存开辟--二维数组   变量总结   C基础整理
*/

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<assert.h>
#include<string.h>

int main() {
	//6. fgets   fputs
	FILE* fp = fopen("b.txt","r+");
	char buffer[10] = {0};
	char* res = fgets(buffer,5,fp); //fread  fgets使用正确,从文件中读取,是因为b.txt文件没有数据,读取null
	printf("%s",res);



	//5. scanf 与  gets_s  从键盘获取字符串
	//char buffer[128] = {0};
	//gets_s(buffer); //从键盘获取字符串操作
	//puts(buffer); //输出(打印)字符串
	//printf("%s",buffer);

	// *gets_s 和scanf 区别一: gets_s 可以接受空格,而scanf遇到空格,回车输入结束
	//char buffer[128] = {0};
	//scanf("%s",buffer); //按照\n 或者 空格 进行字符串的获取
	//printf("%s",buffer);
	//gets_s(buffer); // 按照\n行 字符串的获取
	//puts(buffer);
	
	/*FILE* fp = fopen("b.txt", "r+");
	assert(fp != NULL);
	//循环向文件中写入数据字符串,直到遇见end 结束写入
	char buffer[128] = { 0 };  //从键盘输入字符串
	while (strncmp(buffer,"end",3) != 0) {
		//scanf("%s", buffer);
		gets_s(buffer);
		fwrite(buffer, sizeof(char), strlen(buffer), fp);
	}
	fclose(fp);
	*/

	//gets_s   scanf  区别二:
	// scanf 把\n留在输入缓冲区中,而gets_s 将输入缓冲区中的\n 替换'\0'
	//实例:
	//FILE* fp = fopen("b.txt","r+");
	//char buffer[128] = {0};
	//scanf("%s",buffer);
	//while (fwrite(buffer, sizeof(char), strlen(buffer), fp) > 0) {// 从输入缓冲区读取
	//	getchar(); //目的就是把多余的'\n' 消化掉
	//	gets_s(buffer); //'\0' '?' '?'
	//	if (strncmp(buffer, "end", 3) == 0) {
	//		break;
	//	}
	//}
	//fclose(fp);


 
	//7. putchar  getchar
	//char c = getchar(); //获取一个字符
	//putchar(c); //打印一个字符
	//scanf("%c",&num);
	//printf("%c",num);

    

    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值