C语言
Sunshine-松
努力奋斗的小码农
展开
-
linux C语言:*** glibc detected *** ./control: free():invalid pointer:
前言今天遇到了一个问题,折腾好久才找到问题原因,永远不要理想化,各种困难都会浮现的,我们只需要不骄不躁,一定可以解决所有问题。问题代码我们先来看一下问题代码部分吧。static char *control_process(char *verb[],char *noun[],char *result){ int verbOpcode = 0; //verb Opcode index i...原创 2019-12-04 15:59:36 · 268 阅读 · 0 评论 -
C语言实现按行读取文件以及% [ ^ \n ]的使用
由于C语言没有库函数,所以在读取文件一行数据的时候,需要自己,经过查资料并且验证有以下可行方法第一种方法#include <stdio.h>#include <stdlib.h>#include <stdbool.h>int main(){ const char *filePath = "test.txt"; char data[100]...原创 2019-12-03 18:29:08 · 3481 阅读 · 0 评论 -
C语言实现字符串匹配并返回匹配字符串
最近在写一个程序,需要用到字符串匹配,并且返回匹配的字符串,C语言库函数中的strtstr无法满足我的要求,只能自己写了。代码如下//string match functionchar *matchString(const char* buf, const char* sub) { char* tbuf = buf; char* tsub = sub; int i = 0;//tbuf...原创 2019-12-03 17:14:49 · 4298 阅读 · 0 评论 -
memcmp函数使用详解
最近做项目需要用到字符串比较,所以就学习了一下memcpy函数,在这里做个标记函数原型在linux 下执行一下命令查看其函数原型;man 3 memcmp从这里可以得到函数原型为如下:#include<string.h>int memcmp(const void *s1,const void *s2,size_t n);功能描述memcmp()函数比较存储区s1和...原创 2019-11-28 15:52:27 · 8103 阅读 · 0 评论 -
C语言打印中文字符
中文在UTF-8编码下占3个字节,在GBK编码下占2个字节。以下程序是在UTF-8编码下,所以中文占3个字节。#include<stdio.h>#include<stdlib.h>#include<string.h>int main(int argc,char *argv[]){ char *s = "扔应怎属是"; char *result ...原创 2019-11-25 17:57:14 · 9022 阅读 · 0 评论 -
Linux下读取文件内容存放到数组中(C语言实现)
Linux下读取文件内容存放到数组中(C语言实现)具体使用函数FILE *fopen(const char *path,const char *mode);其实用方式为:文件指针名=fopen(文件名,使用文件方式);例如:FILE *fp;fp=fopen("file a","r");其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。下面代码为具...原创 2019-11-25 17:03:37 · 5153 阅读 · 0 评论 -
所有排序C语言实现
为了复习一下排序,所以把堆排序、快速排序、冒泡排序、选择排序、插入排序、归并排序都复习了一下,具体原理就不讲了,网上都有,直接看代码吧。1.堆排序#include<stdio.h>#include<stdlib.h>#include<string.h>//交换函数void swap(int *a,int *b){ int tmp=*a; ...原创 2019-08-25 10:57:28 · 174 阅读 · 0 评论 -
C语言实现字符串相关函数(嵌入式C语言面试)
1.翻转字符串题目:翻转字符串单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变解题思路:先反转字符串,再翻转单词C语言代码如下:// 字符串翻转函数 pBegin:字符串开始位置 pEnd:字符串结束位置void Reverse(char *pBegin,char *pEnd){ if(pBegin==NULL||pEnd==NULL) ...原创 2019-08-05 21:38:12 · 349 阅读 · 0 评论 -
Memcpy 拷贝函数的实现(考虑内存覆盖问题)
memcpy函数是把src指向的对象中的size个字符拷贝到dst所指向的对象中,返回指向结果为对象的指针1. 不考虑内存覆盖时,代码如下void *memcpy(void * dst,const void *str,int n){ if(dst==NULL||str==NULL||n<=0) // 判断是否符合要求 { return NULL; ...原创 2019-08-05 21:27:00 · 959 阅读 · 0 评论 -
C语言--实现找出3x3矩阵里行最大同时列最小的数所在的行和列
首先先说一下二维数组的传参,有三种模式1.形参为二级指针函数定义: void function(int **arry, int col);// col为列宽度函数调用: function((int **)arry);在函数中使用: *(int *)arry+rows*col+cols ; 2.形参为数组指针函数定义: void function(...原创 2019-08-05 21:13:09 · 1958 阅读 · 0 评论 -
数据结构栈-C语言实现链表
最近复习数据结构,遇到一道算法题,从尾打印链表,使用的是入栈操作,因为栈属于“先进后出”,正好符合这个题目;借此也把栈复习一下;1.什么是栈?答:保存局部变量。栈上的内容旨在函数的范围内存在,当函数运行结束,这些内容也会自动销毁。其特点是效率高,但空间大小有限。** 栈是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶,相应地表头端称为栈底,不含元素的空表...原创 2019-07-21 16:45:40 · 473 阅读 · 0 评论 -
C语言编程遇到:illegal use of this type as an expression错误解决办法
C语言编程 illegal use of this type as an expression错误解决办法今天编写一个出栈入栈的程序,遇到这个问题, 先看一个测试代码吧:int main(int argc,char * argv[]){ int flag=1; if(flag==1) { flag=flag*10; printf("this ...原创 2019-07-19 17:10:32 · 10107 阅读 · 1 评论