小编给大家分享一下C语言中字符串怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
零个或多个字符组成的有限序列
串的比较实际上是在比较串中字符的编码
存在某个k < min(n,m),使得ai = bi (i = 1,2,3,4..k)
如果 ak < bk --> 那么srt1 < srt2 (反之也成立)
除去相等的字符,在第一个不相等的字符位置以Ascii码进行比较
串的顺序存储结构示意图
串的顺序存储结构是用一组地址连续的存储单元来存储串中的字符序列
typedef struct sqString{
char* ch; //若串为空,则按串长分配存储区
//否则ch = NULL
int length;//串长
}sqString;
/** 状态码 **/
#define TRUE 1
#define FALSE 0
#define EQ 0
#define GT 1 //大于
#define LT -1 //小于
#define MAX_SIZE 1024
typedef struct{
char ch[MAX_SIZE + 1];
//定长方式实现了字符串的顺序结构--缺点是浪费空间
int length;
}SString;
/** 串的堆式顺序存储结构(Heap)**/
typedef struct{
char * ch;
//如果是非空串,那么就按照指定长度分配内存,否则ch就指向NULL
int length; //串当前长度
}HString;
/** 为串str赋值,值为字符串常量chars **/
void StrAssign_HeapString(HString * str,char * chars){
int len = strlen(chars);
if(!len) return ERROR;
InitString_HeapString(str);
//动态为字符串分配空间
str->ch = (char*)malloc(len * sizeof(char));
if(!str->ch){
exit(OVERFLOW); //内存溢出,分配失败
}
//逐个将字符串输入所分配的空间中
for(int i = 0;i < len ; i++)
{
str->ch[i] = chars[i];
}
str->length = len; //将长度赋值
return OK;
}
str1 == str2 返回0 ; str1 < str2 返回-1 ; str1 > str2 返回1
Status Strcmp_HeapString(HString * str1,HString * str2){
for(int i = 0;i < str->length && i < str2->length; i ++){
//遇到不同的字符就直接比较Ascii
if(str->ch[i] != str[2]->ch[i]){
//大于则返回整数,小于则返回负数
return str->ch[i] - str[2]->ch[i];
}
}
//字符都相等但是长度不等,就比较长度
return str1->length - str2->length;
}
以上是“C语言中字符串怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。