*一. 字符串函数总结
* 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; }
字符串的总结
最新推荐文章于 2022-03-25 10:37:38 发布