⑴ 数据结构(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类型,我也不知道怎么表示字符串的数组,既然最终是用字符串输出,就直接用一个字符串连接呗