‘壹’ 数据结构(c语言)中字符串的问题
空格串表示字符串里面的元素是“空格”
空格是确确实实存在的字符 只是不能显示的打印在屏幕上而已
在ASCII码中空格对应的是32(十进制 十六进制是20h)与别的字符对待是相同的
而空串则是表示字符串为空 即"" 也就是字符串中不含任何字符 字符长度为0
一般用作对新定义的字符串进行初始化
他们的区别还是蛮大的 不过有一个概念叫空字符到比较容易混淆
空字符是‘\0’他是确实存在的字符 在字符数组中表示字符串的结束
‘贰’ 数据结构C语言串联接代码怎么解释
很简单,数组的0元素里保存是串的长度。两个点前后的数值表示的是下标范围。先复制S1,再复制S2。能够把最简单的一个算法写成这么复杂的一个样子的,不愧是专家。其实这些东西都不难,但要想看懂专家写的书,一定要提高甲骨文的阅读能力。建议你找些国外的书参照一下
‘叁’ 数据结构(C语言)串问题
按这个程序的意思
1...s1[0]应该是从1到s1的长度,所以t[1..s1[0]]就代表一个字符串,t[1..s1[0]]=s1[1..s1[0]]; 是直接给字符串赋值。
但是在C程序里面不能用这种简略写法。你看的书好象太不规范了。。。
1...s1[0]应该用for(i=1;i<=s1[0];i++)表示
而且似乎很少有“下标为0的位置存放串的长度”...
不知道是不是我孤陋寡闻...
‘肆’ 数据结构c语言串的问题
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
usingnamespacestd;
typedefstruct{
char*ch;
intlength;
}HString;
intStrLength(HString&T)
{
inti=0;
while(T.ch[i]!=0)
{i++;}
T.length=i;
returnT.length;
}
voidgetString(HString&T,intlen)
{
T.length=len;
T.ch=(char*)malloc(T.length+1);
inti;
for(i=0;i<T.length;i++)
cin>>T.ch[i];
T.ch[i]='