C
Linux_痞子
痞子
展开
-
qt5.3的操作技巧
F4 在头文件和代码之间切换F2 在声明和实现之间切换Ctrl + k 打开定位器(locator)Ctrl + Shift + f 打开全局搜索框Ctrl + f 打开当前页面搜索框Ctrl + 鼠标滚轮 缩放代码Ctrl + 空格 | 视频]Ctrl + / 注释或取消注释Alt + 回车 快速修复,如为头文件中的方法添加实现,或为实现添加头文件中声明,为翻译 2016-01-28 13:11:41 · 452 阅读 · 0 评论 -
递归调用详解
下面是个关于递归调用简单但是很能说明问题的例子:/递归例子/#include<stdio.h>void up_and_down(int);int main(void){ up_and_down(1); return 0;}void up_and_down(int n){ printf("Level %d:n location %p\n",n,&n); if(n转载 2016-04-30 18:18:45 · 653 阅读 · 0 评论 -
给定字符串查找子串,返回子串出现的位置
/*查找子串在给定字符串中出现的位子*/#include <stdio.h>#include <string.h>int str_in_str(char *src_str,char *child_str){ int i = 0,j = 0; for(;src_str[i] != '\0';i++) { if(child_str[j] == src_str[原创 2016-04-30 22:35:26 · 2687 阅读 · 0 评论 -
将字符串转换为整数
/*atoi函数实现*/#include <stdio.h>#include <string.h>#include <math.h>#include <ctype.h>bool mydigit(int ch){ if(ch > '0' && ch < '9') return true; return false;}int str_to_int(const c原创 2016-04-30 23:41:18 · 522 阅读 · 0 评论 -
htoi(十六进制转十进制)
/*htoi函数实现*/#include <stdio.h>#include <math.h>#include <ctype.h>bool mydigit(int ch){ if(ch > '0' && ch < '9') return true; return false;}int transfer(char ch){ if(mydigit(ch)原创 2016-05-01 00:15:08 · 2693 阅读 · 0 评论 -
删除给定字符串中的某一字符
/*删除给定字符串中的某一字符*/方法1:#include <stdio.h>#include <string.h>void del_char(char str[],char ch){ int i = 0,j = 0; if(*str == '\0') return; for(j = i = 0;str[i] != '\0';i++) {原创 2016-05-01 12:07:16 · 2447 阅读 · 0 评论 -
面试
一、C语言 1、Linux的内存管理机制2、C程序编译运行的五个阶段 预处理,编译,链接 gcc -i gcc -s gcc -c 3、数据类型 1) 整型、浮点型、指针类型、聚合类型 定义数据在内存中占有几个字节,即读取数据时,一次读取几个字节。 聚合类型 2) 类型定义 a) typedef b) #define原创 2016-05-13 19:49:23 · 247 阅读 · 0 评论 -
面试题
任意给了一个如,比如int a=12345,编写程序用a的每一位数相加如果位数大于1,比如是15,继续拆分相加直到结果为1位为止。#include <stdio.h>int test(int test_num){ int temp = 0; if(test_num < 10) return test_num; while(test_num %10 || te原创 2016-05-14 13:29:48 · 205 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
已知类String的原型为class String { public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(const String &other)原创 2016-05-14 14:10:45 · 435 阅读 · 0 评论 -
面试,字符串内查找数字,数组保存
描述:在字符串内查找数字,并保存在数组中,例如a123ds42。 则a[0] = 123,a[1] = 42.#include <ctype.h>#include <stdio.h>#define MAX 20 //数组的最大长度/*处理字符串*/int findnum(const char *str){ int i = 0,j = -1,arr[MAX] = {0};//切忌次原创 2016-05-15 19:12:11 · 496 阅读 · 0 评论 -
简单字符串替换
#include <stdio.h>#include <string.h>int main(void){ int i = 0; char str[20] = {0}; fgets(str,20,stdin); while(str[i] != 0) { if(str[i] == ' ') { str[i原创 2016-05-16 23:11:03 · 268 阅读 · 0 评论 -
c语言的坑
关于c中的两个小坑1、sizeof()关键字测试的是在栈中的内存所占有的存储空间,对于堆内存则不可行static int a = 10;sizeof(a) = ?2、strlen测试字符串的长度,必须要以'\0'结束。char ch[2] = {'1','2'};strlen(ch) = ?原创 2016-05-10 14:31:09 · 436 阅读 · 0 评论 -
全局函数和成员函数的this转换
这里的测试代码主要是帮助自己了解在类中的this指针。 使用的测试代码主要是:1、使用全局函数实现对象的相加;A global_add(A &a,A &b);使用全局函数实现对象的相加,必须要在实参中传递两个对象,返回值是对象的类型。2、使用成员函数实现对象的相加;A& member_add(A &ab);系统会解释为:A& member_add(A *pobj,A &ab);即:会增加一原创 2016-04-11 00:00:06 · 624 阅读 · 0 评论 -
利用系统的随机函数生成唯一随机数
遍历生成的一组随机数,让各个数唯一#include<stdio.h>#include<time.h>void randLotteryNumber(short *rightlotteryNO,int size){ int i = 0,j = 0,flag; short randNum = 0; //第一步,设置随机种子 unsigned int timeS原创 2016-03-01 17:30:40 · 1283 阅读 · 0 评论 -
C实现的排序
1、选择排序法#include#includevoid swap(int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp; }void selectsort(int *arr,int size){ int i = 0,j = 0; for(;i < size;i++) { int temp =原创 2016-02-01 23:37:16 · 356 阅读 · 0 评论 -
Linux下curses库的安装和函数的使用
curses库是一组函数,程序员可以用它们来设置光标的位置和终端屏幕上显示的字符样式。curses库最初是由UCB的开发小组开发的。大部分控制终端屏幕的程序使用curses。曾经由一组简单的函数组成的库现在包括了许多复杂的特性。Ubuntu下安装方法:sudo apt-get install libncurses5-dev (如果发现找不到这个包,使用命令 sudo apt翻译 2016-02-17 10:12:04 · 717 阅读 · 0 评论 -
线程之互斥锁
在多线程中对共享资源的访问在一个多线程的程序中,有时需要同时对共享资源的访问,就会造成对共享资源的读写问题。 例如:有五个线程,其中一个对共享资源进行修改,其余四个线程需要同时对共享资源进行读访问。势必会造成其余四个线程读取数据的不稳定。此时就可以使用互斥锁去解决这一问题。 当修改共享资源的线程需要对数据进行修改时,首先得到互斥锁,进行加锁。其他进程就被阻塞不可以去读取资源了。操作完成后,解锁,原创 2016-03-16 02:39:36 · 315 阅读 · 0 评论 -
栈内存和堆内存
栈内存: 1、栈内存的地址是有名字的,所以可以通过名字间接访问内存空间,当然也可以通过取地址直接访问内存空间。 2、栈内存是连续的,访问的效率高,但是栈内存是系统分配的使用不灵活。 堆内存: 1、堆内存的地址是没有名字的,所以只可以使用地址访问内存空间,而且堆内存的空间是不连续的,访问的效率较栈内存低,但是对系统内存的使用率高。 2、向系统翻译 2016-02-18 18:14:02 · 1162 阅读 · 0 评论 -
线程通信
希望此文能给初学多线程编程的朋友带来帮助,也希望牛人多多指出错误。 另外感谢以下链接的作者给予,给我的学习带来了很大帮助 [http://blog.csdn.net/locape/article/details/6040383](%E7%BA%BF%E7%A8%8B) [http://www.cnblogs.com/liuweijian/archive/2009/12/30/1635888.h转载 2016-03-20 21:42:01 · 247 阅读 · 0 评论 -
linux 线程互斥同步By信号量
今天有空就研究了下linux线程间的同步通信By信号量,离校钱只是匆匆的从网上看了一点概念性的东西(其实连概念也谈不上,就知道有信号量这么回事),对于具体的怎么用代码实现也不知道,现在正好有时间,研究了一下。1、概念1、信号量从本质上是一个非负整数计数器,是共享资源的数目,通常被用来控制对共享资源的访问。2、信号量可以实现线程的同步和互斥3、通过sem_post()和sem_wait()函数对信号量原创 2016-03-20 23:24:28 · 411 阅读 · 0 评论 -
socket编程
一、Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访转载 2016-03-20 23:35:13 · 223 阅读 · 0 评论 -
C学习总结
学习了一段时间C语言了,一直想写点什么总结的,但是迫于每次的学习时间都比较紧迫,就一直耽误了,今天就借此休息时间来总结下近来的C语言学习情况。 个人认为编程语言的学习都是一条道路,语法规则大同小异,操作流程只要按部就班即可,算法也一样,只不过是步骤比较巧妙。文件操作1,创建文件指针FILE *pf = NULL;2,文件指针操作pf = fopen("file_path","open_file_原创 2016-02-29 15:02:54 · 312 阅读 · 0 评论 -
实现在linux下的itoa函数
在linux系统中虽然自带了atoi()函数, 但是内有对应的itoa()函数,那就自己实现吧! 1、自己实现itoa()void itoa(int i,char* string){ int power,j; j=i; for(power=1;j>=10;j/=10) power*=10; for(;power>0;power/=10)翻译 2016-03-17 00:06:22 · 3515 阅读 · 0 评论 -
汉诺塔求解
练习汗诺塔的问题主要是解决函数的递归调用问题。#include <stdio.h>#include <string.h>void hanno(int num,char ch1,char ch2,char ch3){ if(num == 1) { printf("from %c to %c\n",ch1,ch3); } else {原创 2016-05-17 22:37:02 · 353 阅读 · 0 评论