Linux学习中

3月4日

学会了用c写链表

typedef struct node{

char a[10];           //这里一定要确定字符串的大小

int i;

struct node *next;

}Node,*List; 

除了学会了c的链表,我还知道这里字符串的拷贝需要使用strcpy函数,而不能用简单的赋值。唉,因为这个问题让我调试了好久,c的内存问题还是一个大问题。

 

3月5日

今天一天又花在了写狗日的Linux程序上了,没学到什么

不过还是第一次使用了strcat函数,感觉不错

哦,今天还用了gdb进行了调试

知道了gcc -g以后,就把调试开了出来。

到网上搜了一些资料,关于gdb的:

1.  用-g把调试开出侯

2.  gdb 文件名

3.  键入run就可以开始调试了

gdb的命令有这些:

基本 gdb 命令

命   令
描 述
file
装入想要调试的可执行文件.
kill
终止正在调试的程序.
list
列出产生执行文件的源代码的一部分.
next
执行一行源代码但不进入函数内部.
step
执行一行源代码而且进入函数内部.
run
执行当前被调试的程序
quit
终止 gdb
watch
使你能监视一个变量的值而不管它何时被改变.
break
在代码里设置断点, 这将使程序执行到这里时被挂起.
make
使你能不退出 gdb 就可以重新产生可执行文件.
shell
使你能不离开 gdb 就执行 UNIX shell 命令. 
 

4.  list可以查看代码

5. break  行数    建立断点

6. run 运行

7. watch 变量名

8. next  执行下一步

具体的看http://www.ccw.com.cn/htm/app/linux/develop/01_7_25_13.asp

好吧,明天试验一下。


3月6日
今天继续我的Linux作业,原本一个自认为很难的问题,跑到csdn上一问,一群牛人就给我了解答,自己看了以后都觉得好简单,
//从字符串ptr中取出第n列数据放入str中,成功返回1,否则返回-1;
int search(char *ptr,int n,char *str){
    char buf[n*3+3];
    memset(buf,0,sizeof(buf));
    while(--n)strcat(buf,"%*s");
    strcat(buf,"%s");
    return sscanf(ptr,buf,str);
}
这是一个取出一行中第n列字符传的方法,我自己写了好几个小时都没好,高手就这么己行代码就搞定了,太汗了。
今天自己还了解到了一些字符串的操作,比如strtok,strstr,strcat等。
不过strtok有点诡异,时好时坏的。不知道怎么回事。
后来,我研究了一下,发现空格和tab这两个strtok认为是两种字符,一个是“ ”,另一个是“/t”.
#include <stdio.h>
#include <string.h>

int main(){
    FILE *table=fopen("ss.txt","r");
    char buf[255];
    while(fgets(buf,255,table)!=NULL){
        char *p;
        printf("%s/n",strtok(buf," /t"));     //如果这里改成“ ”,只有空格,那么文件中的tab空格就不会被识别了
        while((p=strtok(NULL," /t")))printf("%s/n",p);
    }
    char tmp[20]="1 2 3 4 5";
    char *m;
    printf("%s/n",strtok(tmp," "));
    while((m=strtok(NULL," ")))printf("%s/n",m);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值