第一问:回文数

解题思路:将数字转换为字符串,利用双指针进行遍历比较,当两个指针走在同一个下标的时候就停止,说明这个数就是回文数。
c
bool isPalindrome(int x)
{
char arr[1024];//开辟一个空间
sprintf(arr,"%d",x);//把十进制的x转换为数组存进去,并自动添加'\0'
int right=0;
right=strlen(arr)-1;//strlen求出字符串个数不包含'\0'然后-1找到末尾下标
int left=0;
while(left<right)//比较,当两个相等的时候就表名已经是回文
{
if(arr[left]!=arr[right])//途中不符合就停止
return false;
left++;
right--;
}
//走出来就表明一定是回文
return true;
}
第二问:找出字符串中第一个匹配的下标

解题思路:利用库函数strstr进行查找,如果查找到就返回第一个下标的地址,否则返回NULL,再进行遍历遍历查找返回下标。
c
int strStr(char* haystack, char* needle)
{
char* cur=strstr(haystack,needle);
if(cur==NULL)
{
return -1;
}
int count=0;
char *tmp=haystack;
while(tmp!=cur)
{
tmp++;
count++;
}
return count;
}