對解決非數值的問題,主要設計到的操作物件是字串,簡稱串。
對串的儲存可以又兩種處理方式:一種是將串定義成字元型陣列,串的儲存空間分配在編譯是完成,不能更改,這種方式稱為串的靜態儲存結構; 另外一種是串的儲存空間在程式執行時動態分配,這種方式稱為串的動態儲存結構。
串的鏈式儲存結構是包含資料域和指標域的節點結構。其中資料域用來儲存字元,指標域儲存指向下乙個節點的指標,這樣的乙個串可以用乙個單鏈表來表示。
用單鏈表存放字串,若每個節點僅放乙個字元,則每個節點的指標域所棧儲存空間比資料域所佔儲存空間要大的多。為了節省空間,可使每個節點存放若干個字元,這稱職位塊鏈結構。顯然塊鏈結構的儲存密度高於乙個節點儲存乙個字元的鍊錶結構。通常,串的鏈式儲存結構多採用塊鏈結構。具體例子如下(對每行資料進行操作):
#include
#include
#define max 100
#define data_max 80
typedef struct node
nodetype;
typedef struct head
headtype;
headtype head[max];
void initial();
int menuselect();
void enterdata();
void deleteline();
void list();
void clearbuffer();
int main() }
}void clearbuffer()
void initial()
return i;
}void enterdata()
i = linenumber;
head[i].num = linenumber;
head[i].next = ( nodetype *)malloc( sizeof( nodetype));
p = head[i].next;
m = 1;
j = -1;
strbuffer[0] = 0;
k = 0;
doif(j>= data_max*m)
p->data[j%data_max] = strbuffer[k++];
}while(p->data[j%data_max] != '@');
head[i].len = j;}}
void deleteline()
i = linenumber;
p = head[i].next;
m = 0;
if(head[i].len> 0)
for(j = 0; jnext;
free(p);
p = q;
}head[i].len = 0;
head[i].num = 0;} }
void list()
else
}printf("/n");
} }
printf("/n");
}
字串的應用
字串在我們編碼的過程中是必不可少的乙個元素,我們或多或少的要對字串進行一些使用,那麼使用過程中就會需要不同的方法來實現我們的需求 這些方法使用的恰當的話,會使我們程式編譯更加輕鬆和快捷 下面介紹幾種方法,和例項的應用 charat 返回指定下標的字元,由乙個char型別接收 indexof 和las...
字串應用
define crt secure no warnings include include sprintf的作用 生成乙個指令,把他對映到字串裡,對他初始化 void main1 int num char op 30 scanf d s num,op sprintf str,for l i in 1...
字串應用
var str abcdef alert str 0 aalert str.charat 1 b var str 我是乙個字串 alert str.charcodeat 0 utf 8編碼 字串的indexof var str abac?def alert str.indexof 找第一次出現的位置...