1.回文串问题
把字符串中的大写都改为小写,并且把不是字母的字符删掉组成新的字符串
原思路:都在原地址进行操作,此时会有各种问题
现思路:组成一个新的字符串,用数组进行存储。问题又来了,如何知道新数组的长度呢?在编译的时候,无法你传进来的大小,因此要使用malloc申请内存。
bool isPalindrome(char* s) {
int length=strlen(s);
int j=0;
char* newstr=(char*)malloc(sizeof(char)*length);
for(int i=0;i<length;i++)
{
if((s[i]>='a')&&(s[i]<='z'))
{
newstr[j]=s[i]; j++;
}
else if((s[i]>='0')&&(s[i]<='9'))
{
newstr[j]=s[i]; j++;
}
else if((s[i]>='A')&&(s[i]<='Z'))
{
newstr[j]=s[i]|32; j++;
}
}
newstr[j]='\0';
int newlength=strlen(newstr);
for(int m=0;m<j;m++)
{if(newstr[m]!=newstr[j-m-1]) return false;}
return true;
}