为了账号安全,请及时绑定邮箱和手机立即绑定

请教下关于子函数和描述函数foo的基本路径

请教下关于子函数和描述函数foo的基本路径

森栏 2023-01-02 14:10:25
麻烦看看编写函数foo,实现“判断字符串是否为回文,若是,则函数返回1,主函数输出 YES,否则返回0,主函数中输出
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

#include <stdio.h> 
int foo(char *str) 

char *p=str;
while(*p) p++;
p--;
while(str<p)
{
if(*p!=*str) 
return 0;
p--;
str++;
}
return 1;
}

main() 

char s[80] ; 
printf("Enter a string: ") ; 
gets(s) ; 
printf("\n\n") ; 
puts(s) ; 
if(foo(s)) 
printf("YES\n") ; 
else  
printf("NO\n") ; 


查看完整回答
反对 回复 2023-01-06
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

#include<stdio.h>

//如果是回文,返回1,否则返回0
int foo(const char *pch)
{
const char *pEnd=pch; //pEnd指向字符串头
while(*pEnd !='\0') //将pEnd指针后移,直到字符串尾,即\0字符
pEnd++;
pEnd--; //回退一个,不比较字符'\0'

while(pch<pEnd)
if (*pch++ != *pEnd--) //头指针后移,尾指针前移,逐个比较,直到pch>=pend,也就是两个指针相交了,比较完了
return 0; //如果有两个不等,说明不是回文,返回0
return 1;
}

int main()
{
char *str1 = "abcdefgfedcba";
char *str2 = "abcdefgfedcbax";

if (1 == foo(str1))
{
printf("YES\r\n");
}
else
printf("NO\r\n");

if (1 == foo(str2))
{
printf("YES\r\n");
}
else
printf("NO\r\n");

return 0;
}

 


查看完整回答
反对 回复 2023-01-06
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

int foo(char *str) 
{
char* start = str;
char* end = str + strlen(str);
while(start < end)
{
if(*start != *end)
return 0;
start++;
end--;

return 1;

}


查看完整回答
反对 回复 2023-01-06
  • 3 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信