rong11417 发表于 2018-5-5 22:17

【VC】发一个自己用c语言写的仿易语言的文本_取文本左边函数把

本帖最后由 rong11417 于 2018-5-7 23:33 编辑

适合菜鸟大神 勿喷 c语言写的仿易语言的取文本左边函数把,取文本中间函数可以自己想
功能:返回从原函数起始到一个短字符串的字符数目
参数:
p:源字符串
p2:右边的短字符串
返回值:
成功:返回从原函数起始到一个短字符串的字符数目
错误 :返回为-1
/* 取字符串左边函数 */
#include <stdio.h>
#include <string.h>
int G_getstrleft(const char *p,const char *p2){
      int num1 = 0,num2 = 0,len,tmp;
      /* num1记录的是从p的开头到p2相同字符之间的长度数目 */
      /* num2记录p2与p的连续字符相同的数目 */
      char *p_tmp ;
      /* printf("strlen(p2) = %d\n",strlen(p2)); */
      len = strlen(p2); //指针移动会影响strlen()得到的字符数目
      while(*p != '\0'){
               

                /* 让两个字符串的各个字符相等且连续 */
                if(*p2 == *p){
                for(num2 = 0;*p2 != '\0';num2++,p++,p2++,num1++){
                              /* printf("num2 = %d\n",num2); */

                        if(*p2 != *p){
                              p - num2;
                              num2 = 0;

                              break;
                        }
               
               
                }
                }
                p++;
                num1++;
                /* printf("num1 = %d\n",num1); */

                if(num2 == len){
                        break;
                }
               
      }
      
      if(num2== len){
                return num1 - len - 1;
      }
      else{
                return -1;
      }

}
int main(void){
      char str1[] = "skjtohggddgalh";
      char str2[] = "al";
      int length = 0;
      length = G_getstrleft(str1,str2);
      printf("the length is %d\n",length);
      return 0;
}



苏紫方璇 发表于 2018-5-6 10:05

帮你编辑下帖子,楼主下次发帖先看下这两个帖子
[公告]发帖代码插入教程
https://www.52pojie.cn/thread-713042-1-1.html
【公告】本版区关于规范帖子实行奖励政策细则
https://www.52pojie.cn/thread-730997-1-1.html

洪崖洞洞主 发表于 2018-5-5 22:20

w5645060 发表于 2018-5-5 22:21

rong11417 发表于 2018-5-5 22:23

w5645060 发表于 2018-5-5 22:21
。。。。这个 很难么

大神勿喷
页: [1]
查看完整版本: 【VC】发一个自己用c语言写的仿易语言的文本_取文本左边函数把