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; } 标签:malloc,题目,int,day2,char,&&,字符串,机试,newstr From: https://www.cnblogs.com/lzj1996/p/17849968.html