生活指南——让生活变得更简单

字符定位c语言pta_c字符串定位

课程:

c语言如何对字符串进行位置查询

包含文件:string.h

函数名: strstr

函数原型:

extern char *strstr(char *str1, const char *str2);

语法:* strstr(str1,str2)

str1: 被查找目标 string expression to search.

str2: 要查找对象 The string expression to find.

返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。

例子:

char str[]="1234xyz";

char *str1=strstr(str,"34");

cout str1 endl;

显示的是: 34xyz

函数实现

1.Copyright 1990 Software Development Systems, Inc.

char *strstr(const char *s1,const char *s2)

{

 int len2;

 if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误

  return(char*)s1;

 for(;*s1;++s1)

 {

 if(*s1==*s2 strncmp(s1,s2,len2)==0)

 return(char*)s1;

 }

 return NULL;

}

2.Copyright 1986 - 1999 IAR Systems. All rights reserved

char *strstr(constchar*s1,constchar*s2)

{

int n;

if(*s2)

{

while(*s1)

{

for(n=0;*(s1+n)==*(s2+n);n++)

{

if(!*(s2+n+1))

return(char*)s1;

}

s1++;

}

return NULL;

}

else

return (char*)s1;

}

3. GCC-4.8.0

char *strstr(const char*s1,const char*s2)

{

const char*p=s1;

const size_tlen=strlen(s2);

for(;(p=strchr(p,*s2))!=0;p++)

{

if(strncmp(p,s2,len)==0)

return (char*)p;

}

return(0);

}

应用举例

// strstr.c

#include syslib.h

#include string.h

main()

{

char *s="GoldenGlobalView";

char *l="lob";

char *p;

clrscr();

p=strstr(s,l);

if(p)

printf("%s",p);

else

printf("NotFound!");

getchar();

return0;

}

//功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”

(假设xxx和yyy都是一个未知的字串)

char *s=”string1onexxxstring2oneyyy”;

char *p;

p=strstr(s,”yyy”);

if(p!=NULL)

printf(“%s”,p);

else

printf("notfound\n");

说明:如果直接写语句p=strstr(s,”one”),找到的是onexxxstring2oneyyy

char *mystrstr(char*s1,char*s2)

{

if(*s1==0)

{

if(*s2)

return (char*)NULL;

return (char*)s1;

}

while(*s1)

{

int i=0;

while(1)

{

if(s2[i]==0)

return s1;

if(s2[i]!=s1[i])

break;

i++;

}

s1++;

}

return (char*)NULL;

}

C语言实现定位一字符串的首位置

我知道了,你不要用scanf()来完成字符串的输入,因为scanf()默认空格,回车,

制表符

都是字符串结束的标志

所以

用gets()函数,它允许输入空格,只有回车后,字符串才结束输入

程序如下

#includestdio.h

main()

{

int

i;

char

a[50];

定义数组

gets(a);

输入字符串

while(a[i]!='a')

判断位置

i++;

printf("位置在%d位",i+1);

}

如果哪有看不懂的,可以补充

★★★C语言字符位置定位★★★

很简单吧,呵呵。注意那个字符串里面是有转义字符 \ 哦

#includestdio.h

#includestdlib.h

void main()

{

char *string1 = "ABC\\123\\WEB\\@CN";

char *p = NULL;

int n = strlen(string1);

int i;

i = n;

if(p == NULL)

{

p = (char *)malloc(n*sizeof(char *));

}

printf("%s\n",string1);

for(p = string1;*p!='\0';p++)

;

p--;//使p指向最后一个位置。

for(i;i0;i--)

{

if(*p == '\\')

break;

p--;

}

n = i;

printf("出现的最后一个位置是%d\n",n);

if(p != NULL)

{

p = NULL;

free(p);

}

}

(c++或C语言)查找文件中字符串的位置?

头文件:#include string.h

strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:

char * strchr (const char *str, int c);

【参数】str 为要查找的字符串,c 为要查找的字符。

strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。

注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。

【返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。

返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。

提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。

【实例】查找字符5首次出现的位置。

复制纯文本新窗口

#include stdio.h#include stdlib.h#include string.hint main(){ char *s = "0123456789012345678901234567890"; char *p; p = strchr(s, '5'); printf("%ld\n", s); printf("%ld\n", p); system("pause"); return 0;}

如何用C语言或者C++在给定文本中查找并定位字符串?

这里有答案。。。你要是还不会的话找我。。QQ群:110675294里面有人会给你回答的

  • 评论列表:
  •  访客
     发布于 2022-07-08 11:08:17  回复该评论
  • 符串结束的标志所以用gets()函数,它允许输入空格,只有回车后,字符串才结束输入程序如下#includestdio.hmain(){inti;chara[50];定义数组gets(a);输入字符串while(a[i]!='a')判断
  •  访客
     发布于 2022-07-08 09:26:37  回复该评论
  • 文本新窗口#include stdio.h#include stdlib.h#include string.hint main(){ char *s = "012345678901234567890123456

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright Your WebSite.Some Rights Reserved.