⑴ 數據結構(c語言版)採用順序存儲結構,完成串的聯接和子串定位操作
#include<stdio.h>
void main(){
char s1[100]={'a','b','a','b','b','a','a','b','a','a','\0'};
char s2[100]={'a','a','b','\0'};
int i=0,j=0;
while(s1[i]!='\0'){
i++;
}
printf("定位結果為%d(0為第一個)\n",i);
while(s2[j]!='\0'){
s1[i]=s2[j];
i++;
j++;
}
s1[i]='\0';
printf("%s",s1);
}
⑵ 數據結構C語言 字元串 靜態堆存儲如何做
malloc、remalloc等函數分配的內存就是在堆中。靜態堆存儲?? 這詞聽得有點別扭,本身C語言有4中內存空間:靜態數據區(全局變數和靜態變數)、代碼區(存放代碼)、堆區(通過malloc、remalloc函數分配的內存空間)、棧區(保存局部變數)。 其中堆區中的內存是需要我們手動釋放的,而靜態數據區中數據的生命周期伴隨整個應用程序。如果你說的靜態堆存儲是想讓只想堆內存的指針為靜態的話,那麼這樣寫就行了: static type *p = (type*)malloc(sizeof(type));
⑶ c語言中怎麼存一個字元串
在c語言中存儲一個字元串,一般有兩種方法,一種是字元指針,一種是使用字元數組。比如:
constchar*str="hello";//使用字元串指針
constcharstr[]="hello";//使用字元數組
如果保存的字元串,需要修改。一般使用字元數組。比如:
charpath[256]="c:\windows\";
strcat(path,"system32");
⑷ c語言怎麼保存字元串
"可以用數組。
?
定義一個字元型數組,然後賦值。如:char c[5]=""1a2d"";
"
⑸ c語言數據類型的存儲結構
浮點數,我也不說的太多,說白了就是小數。
結構體:它是將幾個數據以及數據的類型封裝在一個數據類型中,如果你學過面向對象的語言,那麼就好似是一個類,比如一個人的身體就可以看做一個結構體,它是由頭、腿,膀子等一切構成人的身體這個物體的。以後訪問,你可以先找到人的身體,在去訪問頭啊。例:
struct
body{
head
hh;
hand
ha;
};
這只是個假設,要是語言會有:
struct
people{
int
age;
char[20]
name;
};
而共用體:和他的名字一樣公用,比如
宿舍就是一個公用的地方,你和別人說這是你的宿舍,那麼舍友也可以和別人說這是他的宿舍,這是你們共同的宿舍,比如有
union
uu{
int
ii;
char
cc;
}
int
和
char
公用一塊內存。這樣節約啊!!還有其他的優點。比如節約強制轉化,需要的注意的是,只有兩個可以相互轉化的類型才可以公用一塊內存,因為他們只有在內存中表現形式相同才可以啊,要不轉化怎麼辦啊。。
=-=
⑹ 學生求教C語言編程:順序存儲結構形式,用c語言做一個串比較的程序,一個求串長的,一個串連接的程序。
樓主你好
(1)比較字元串:
#include<stdio.h>
#include<string.h>
#define MAX 100
int main()
{
int i=0;
char a[MAX],b[MAX];
int length;//獲取a、b字元串的長度
int judge=0;//標記字元串a是否大於b 1表示a大 0表示一樣大 -1表示b大
printf("請輸入一個字元串a:");
scanf("%s",a);
printf("請輸入一個字元串b:");
scanf("%s",b);
length=strlen(a)<strlen(b)?strlen(a):strlen(b);
for(i=0;i<length;i++)
{
if(a[i]<b[i])
{
judge=-1;
break;
}
else if(a[i]>b[i])
{
judge=1;
break;
}
else
judge=0;
}
switch(judge)
{
case 1:
printf("字元串a大!\n");
break;
case 0:
printf("字元串a等於字元串b\n");
break;
case -1:
printf("字元串b大!\n");
break;
}
return 0;
}
(2)求字元串長的那個
#include<stdio.h>
#define MAX 100
int main()
{
int i,j;
char a[MAX],b[MAX];
printf("請輸入字元串a:");
scanf("%s",a);
printf("請輸入字元串b:");
scanf("%s",b);
for(i=0;a[i]!='\0';i++)
;
for(j=0;b[j]!='\0';j++)
;
if(i>j)
printf("字元串a長於字元串b\n");
else if(i==j)
printf("一樣長!\n");
else
printf("字元串b長於字元串a\n");
return 0;
}
(3)字元串連接
#include<stdio.h>
#define MAX 100
int main()
{
char a[MAX],b[MAX],c[MAX*2];
int i,j;
printf("請輸入字元串a:");
scanf("%s",a);
printf("請輸入字元串b:");
scanf("%s",b);
for(i=0;a[i]!='\0';i++)
c[i]=a[i];
i--;
for(j=0;b[j]!='\0';i++,j++)
c[i]=b[j];
c[i]='\0';
printf("字元串a連接字元串b為:\n%s\n",c);
return 0;
}
希望能幫助你哈
⑺ C語言中,如何將一個字元串以數組的形式存儲
char s[100] = {'\0'};
gets(s);
現在你的字元串就存儲在數組s中了,接下來循環判定數字吧
⑻ 如何用C語言實現簡單的鏈式存儲結構
使用結構體:
typedef struct node{
int data;
struct node* next;
}Node;
就可以實現,以上是一個單鏈表的節點元素,每個節點的next指向下一個節點,就可以實現鏈式存儲了。遇到其他類似的問題,可以根據需要設置相應的指針域。
⑼ C語言實現把一些字元串存儲到數組或其他數據結構中並輸出
sometype flag;
char str[100];
while(flag != 程序運行結束標志)
{
if(程序運行結果 == "apple")
//if里可能是字元串比較,也可能是相應的數字的比較,看具體情況改吧
{
strcat(str, "apple");
}
else if(程序運行結果 == "banana")
{
strcat(str, "banana");
}
......
}
C裡面好像沒有string類型,我也不知道怎麼表示字元串的數組,既然最終是用字元串輸出,就直接用一個字元串連接唄