字符串char *str1="aaaabbbbccccbbbb";char *str2="bbbb";
不使用庫函數(shù)實(shí)現(xiàn)字符串的一部分操作:
1.求字符串的長度:
第一種方法:while(*(str1++)) str_len++;
第二種方法:for(int i=0,*(str1+i)!='\0';i++) str_len++;
2.求子串在主串。
int i=0;int j=0;
while(*(str1+i))
{
if(*(str1+i)==*(str2+j))
{
i++;j++;
}
else
{
i++;j=0;
}
if(*(str2+j)=='\0')
{
return i-j;
//break; //注釋掉的話可以返回多個(gè)字符的位置。
}
}
3.判斷是否相等。
while(*(str1+i)!='\0'&&*(str2+i)!='\0')
{
if(*(str1+i)==*(str2+i))
i++;
else
{
cout<<"they are not compared"<<endl;
break;
}
}
if(*(str1+i)=='\0'||*(str2+i)=='\0')
cout<<"they are not compared"<<endl;
4.合并字符串。合并字符串的時(shí)候一定要先為之分配足夠的內(nèi)存空間,否則便會(huì)出現(xiàn)內(nèi)存越界的情況。
while(*(str1+i))
{
i++;
str1_len++;
}
while(*(str2++))
str1_len++;
char *s=(char *)malloc (str1_len);
s=str1;
cout<<"the string before copy is:"<<s<<endl;
int j=0;
while(*(str2+j))
{
*(s+j)=*(str2+j);
j++;
}
cout<<"the string after copy is:"<<s<<endl;
cout<<"the length of string after copy is:"<<str1_len<<endl;
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。