串
2017-09-26 本文已影响0人
苏鑫的博客
#include<stdio.h>
#define MAXSTRSIZE 255
#define True 1
#define False 0
typedef int bool;
typedef unsigned char String[MAXSTRSIZE+1];
void StrAssign(String,unsigned char []);
void StrShow(String);
int StrLength(String);
void StrCopy(String,String);
void SubString(String,String,int,int);
int StrCompare(String,String);
bool StrEmpty(String);
void Index(String,String,int);
void StrAssign(String s,unsigned char chars[]){
int i = 0;
while(chars[i]!='\0'){
s[i] = chars[i];
i++;
}
}
bool StrEmpty(String s){
if(s[0]=='\0'){
return True;
}else{
return False;
}
}
void StrCopy(String t,String s){
int i = 0;
while(s[i]!='\0'){
t[i] = s[i];
i++;
}
}
int StrLength(String s){
int i = 0;
while(s[i]!='\0'){
i++;
}
return i;
}
int StrCompare(String s,String t){
if(!StrEmpty(s)&&!StrEmpty(s)){
if(StrLength(s)==StrLength(t)){
int i = 0;
while(s[i]!='\0'&&t[i]!='\0'){
if(s[i]!=t[i])break;
i++;
}
return 0;
}else{
return StrLength(s)-StrLength(t);
}
}
return -1;
}
void SubString(String sub,String s,int pos,int len){
int i = 0;
while(s[pos]!='\0'&&len>0){
sub[i++] = s[pos++];
len--;
}
}
void Index(String s,String sub,int pos){
if(1<=pos||pos<=StrLength(s)){
int i = 0;
while(sub[i]!='\0'){
if(s[pos++]!=sub[i++])break;
}
if(i==StrLength(sub)){
printf("true");
}
}
}
void StrShow(String s){
if(s){
printf("%s\n",s);
}
}
int main(){
String str;
unsigned char c[]= "hello world!";
StrAssign(str,c);
StrShow(str);
String t;
StrCopy(t,str);
StrShow(t);
String sub;
SubString(sub,str,6,5);
StrShow(sub);
Index(str,sub,6);
}