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 命令
|
|
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;
}