想问下怎么加一个比较长度 ...

不瘦100斤不改网名 2020-05-10 04:49:20
#include <stdio.h> #include <stdlib.h> #define MAX_NUM 100 typedef struct str{ char ch[MAX_NUM+1]; int length; }*SString; //字符串初始化 SString initSString() { SString str=(SString)malloc(sizeof(struct str)); if(!str) printf("动态内存分配失败!\n"); str->length=0; // printf("串初始化成功!\n"); return str; } //判断字符串是否为空 int isEmpty(SString str) { if(str->length==0) { return 1; } return 0; } //字符串赋值 SString strAssign(SString str,char s[]) { int i=0; while(s[i]) { str->ch[++str->length]=s[i]; i++; } return str; } //打印字符串 void printSString(SString str) { int i; for(i=1;i<=str->length;i++) printf("%c",str->ch[i]); printf("\n"); } //字符串复制 SString strCopy(SString str1,SString str2) { int i; for(i=1;i<=str2->length;i++) { str1->ch[i]=str2->ch[i]; } str1->length=str2->length; return str1; } SString strCat(SString str1,SString str2) { SString str3=initSString(); int i; for(i=1;i<=str1->length;i++) str3->ch[i]=str1->ch[i]; for(i=1;i<=str2->length;i++) str3->ch[i+str1->length]=str2->ch[i]; str3->length=str1->length+str2->length; return str3; } //获取字符串的长度 int getStrLength(SString str) { return str->length; } //在串str1的pos位置插入串str2 SString strInsert(SString str1,int pos,SString str2) { if(pos<1||pos>str1->length) { printf("插入位置错误!\n"); exit(0); } int i; for(i=pos;i<=str1->length;i++) { str1->ch[i+str2->length]=str1->ch[i]; } for(i=1;i<=str2->length;i++) { str1->ch[i+pos-1]=str2->ch[i]; } str1->length=str2->length+str1->length; return str1; } //删除指定位置的字符 SString strDelete(SString str,int pos,int len) { if(pos<1||pos>str->length||len+pos-1>str->length) { printf("删除位置错误!\n"); exit(0); } int i; for(i=pos+len;i<=str->length;i++) { str->ch[i-len]=str->ch[i]; } str->length=str->length-len; return str; } //求子串 SString subString(SString str,int pos,int len) { if(pos<1||pos>str->length||len+pos-1>str->length) { printf("输入位置错误!\n"); exit(0); } int i; SString subStr=initSString(); for(i=1;i<=len;i++) { subStr->ch[i]=str->ch[i+pos-1]; } subStr->length=len; return subStr; } //销毁字符串 void destorySString(SString str1) { free(str1); } int main() { SString str=initSString(),str2=initSString(); char s[100],s2[100],s3[100],s4[100]; printf("请输入一个字符串str1:\n"); scanf("%s",s); str=strAssign(str,s); printf("打印字符串str1:\n"); printSString(str); printf("拷贝字符串str1到字符串str2\n"); strCopy(str2,str); printf("打印字符串str2:\n"); printSString(str2); /*SString str3=strCat(str,str2); printSString(str3);*/ int insertLocation; printf("请输入插入位置、插入字符串str4:\n"); scanf("%d",&insertLocation); scanf("%s",s4); SString str4=initSString(); str4=strAssign(str4,s4); str=strInsert(str,insertLocation,str4); printf("打印插入str4后的字符串str1:"); printSString(str); int delLocation,delLength; printf("请输入字符串str1删除字符的位置和长度:\n"); scanf("%d %d",&delLocation,&delLength); strDelete(str,delLocation,delLength); printSString(str); int subLocation,subLength; printf("请输入字符串str1的子串位置和长度:\n"); scanf("%d %d",&subLocation,&subLength); SString subStr= subString(str,subLocation,subLength); printSString(subStr); printf("销毁字符串st1:\n"); destorySString(str); return 0; } 请问在最后一main函数哪里加个比较字符串的长度
...全文
155 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 9 楼 5250的回复:
[quote=引用 8 楼 不许百姓点灯(^ω^) 的回复:]
[quote=引用 7 楼 5250的回复:]那就好 下次有问题可以直接问我

真的吗嘻嘻[/quote]


当然[/quote] 哈哈哈哈好的呢
5250 2020-05-19
  • 打赏
  • 举报
回复
引用 8 楼 不许百姓点灯(^ω^) 的回复:
[quote=引用 7 楼 5250的回复:]那就好 下次有问题可以直接问我

真的吗嘻嘻[/quote]


当然
  • 打赏
  • 举报
回复
引用 7 楼 5250的回复:
那就好 下次有问题可以直接问我
真的吗嘻嘻
5250 2020-05-19
  • 打赏
  • 举报
回复
那就好 下次有问题可以直接问我
  • 打赏
  • 举报
回复
引用 3 楼 qybao的回复:
for example
int strCompare(SString str1, SString str2){
return str1->length - str2->length;
}
谢谢啦虽然我已经交了作业了
  • 打赏
  • 举报
回复
引用 2 楼 棉猴的回复:
//比较str1与str2的长度,如果str1的长度不小于str2的长度,则返回true;否则返回false
bool compareSString(SString str1, SString str2)
{
	if (getStrLength(str1) >= getStrLength(str2))
	{
		return true;
	}
	else
	{
		return false;
	}
}
谢谢
  • 打赏
  • 举报
回复
引用 1 楼 5250的回复:
int strcmplen(char *s,char *a){
return strlen(s) > strlen(a);
}
谢谢你可是我我已经交了作业了
qybao 2020-05-19
  • 打赏
  • 举报
回复
for example
int strCompare(SString str1, SString str2){
return str1->length - str2->length;
}
棉猴 2020-05-19
  • 打赏
  • 举报
回复
//比较str1与str2的长度,如果str1的长度不小于str2的长度,则返回true;否则返回false
bool compareSString(SString str1, SString str2)
{
	if (getStrLength(str1) >= getStrLength(str2))
	{
		return true;
	}
	else
	{
		return false;
	}
}
5250 2020-05-19
  • 打赏
  • 举报
回复
int strcmplen(char *s,char *a){
return strlen(s) > strlen(a);
}

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧