【项目2-用指针玩字符串】神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组(字符串)char str[];指向指针的指针可以操作二维数组。更灵活的是,在函数的传递中,指针、数组名在一定程度上可以互换。
本项目试图通过编制操作字符串的函数,实现字符串的操作。
请编制函数,其功能是对字符串的进行操作
7、
功能:比较两个字符串,返回值同strcmp()
用数组名作形参:int astrcmp(const char str1[], const char str2[])
用指针作形参:int pstrcmp(const char *str1, const char *str2)
参考解答:
//7. 比较两个字符串,返回值同strcmp()
using namespace std;
//int astrcmp(char str1[], char str2[]); //自行实现
int pstrcmp(char *str1, char *str2);
int main(void)
{
char *s[81]={"Tudou","Shanyaodan","Yangyu","Malingshu"};
int i=0,j=0;
cout<<"土豆大PK:"<<endl;
cout<<setw(12)<<" ";
for(;i<4;i++)
{
cout<<setw(12)<<s[i];
}
cout<<endl;
for(i=0;i<4;i++)
{
cout<<setw(12)<<s[i];
for(j=0;j<4;j++)
{
cout<<setw(12)<<pstrcmp(s[i],s[j]);
}
cout<<endl;
}
return 0;
}
//str>str2,返回1
//str==str2,返回0
//str<str2,返回-1
int pstrcmp(char *str1, char *str2)
{
char *p=str1,*q=str2;
while(*p==*q&&*p!='\0'&&*q!='\0')
{
p++;
q++;
}
if (*p>*q)
return 1;
else if(*p<*q)
return -1;
else
return 0;
}