字符串长度问题-char*p=str-1,地址-1貌似没必要吧 ?

问题描述

char*p=str-1,地址-1貌似没必要吧 ?

int IsReverseStr(char str)
{
int i,j;
int found=1;
if(str==NULL)
return -1;
char
p = str-1;
while(*++p!= '');
--p;
while(*str==*p&&str<p) str++,p--;
if(str < p)
found = 0;
return found;

解决方案

while(*++p!= '');因为这里是++p,所以才用str-1
int IsReverseStr(char str)应该是
int IsReverseStr(char *str)

时间: 2024-09-20 00:17:44

字符串长度问题-char*p=str-1,地址-1貌似没必要吧 ?的相关文章

计算unsigned short*字符串长度

函数实现: /* *函 数 名:wuslen *功 能:计算unsigned short*字符串长度 *输入参数:str unsigned short*字符串 *输出参数:无 *返 回 值:unsigned short*字符串 */ int wuslen(const unsigned short* str) { int i=0; if(str == NULL) return i; while(str[i]) { i++; } return i; } 实例: #include <stdio.h>

php中计算中文字符串长度、截取中文字符串的函数代码_php技巧

在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. 复制代码 代码如下: header('Content-type:text/html;cha

使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法_C 语言

代码如下所示: 复制代码 代码如下: // 递归实现字符串反转   char *reverse(char *str)   {    if( !str )    {     return NULL; }       int len = strlen(str);       if( len > 1 )       {           char ctemp =str[0];           str[0] = str[len-1];              str[len-1] = '/0';

C++不使用变量求字符串长度strlen函数的实现方法

  本文实例讲述了C++不使用变量求字符串长度strlen函数的实现方法.分享给大家供大家参考.具体实现方法如下: 1.strlen的源码实现: ? 1 2 3 4 5 6 7 size_t strlen(const char *str) //strlen不做内存非法判断,如果是NULL,会core. { const char *eos=str; while(*eos++); return (eos-str-1); } 2.常见面试题会要求不使用额外变量,实现strlen函数: 实现一: ? 1

Lua获取utf8字符串长度和字符串截取并用...代替

  这篇文章主要介绍了Lua获取utf8字符串长度和字符串截取并用...代替,本文直接给出两个函数的实现代码,需要的朋友可以参考下 一.LUA获取utf8字符串长度 代码如下: --- 获取utf8编码字符串正确长度的方法 -- @param str -- @return number function utfstrlen(str) local len = #str; local left = len; local cnt = 0; local arr={0,0xc0,0xe0,0xf0,0xf

c语言-C语言关于字符串长度的问题

问题描述 C语言关于字符串长度的问题 main(){ char str[]=""La16ef"";printf(""%dn""sizeof(str));}程序的运行结果为6,我明白,但是如果将字符串改为""La18ef"";,就是把6改为其他的数字,结果就为7了,为什么?谢谢了. 解决方案 为什么不求 strlen 而是 sizeof 呢?第一,sizeof 会多算一个字符串结束符第二,

c++-C++ 字符串 长度 指针

问题描述 C++ 字符串 长度 指针 int main(){ char const * pStr=""the long string""; char const *p=pStr; while(*p++); cout<<(p-pStr)<<endl;} 请问输出结果为什么是16,而不是15? 解决方案 因为*的优先级比++高,所以当p指向的时候还会执行一次空循环. 解决方案二: 第15次执行完会执行下一次,也就是第16次,第16次位FALSE了

c# 如何把字符串转化为char[] char[]大小指定

问题描述 现在有个这样的需求.需要把任意字符串转化为char[]数组.char[]数组的大小是指定的.不足的补0,超出的截断或者报错.该怎么转呢?ToCharArray么? 解决方案 解决方案二:ToCharArray解决方案三:string本来就是char[]啊--你写个for循环不就行了char[]chars=newchar[100];varstr="123456";//null判断自己来for(vari=0;i<chars.Length;i++){if(str.Length

递归求字符串长度问题,求大神解答

问题描述 递归求字符串长度问题,求大神解答 int length(char * str) { if (*str == '') { return 0; } else { return (1+length(++str)); } } char str[10]="abcde"; 这个递归最后返回来的为什么会是5 不是应该返回0吗 求大神解惑 解决方案 strlen求字符串长度问题 解决方案二: 你还没有理解递归 最后一次是返回0 但是不是返回给main 而是返回给上一次递归 这样上一次递归就是