求一段代码?上学时的一个非常简单的问题?

zzq789 2004-11-10 10:41:13
C++
要求输入一字符串A,再输入一字符串B,找出字符串
B在A中的位置。
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2004-11-11
  • 打赏
  • 举报
回复
strstr
net_fogprince 2004-11-11
  • 打赏
  • 举报
回复
int position(char *string1,char *string2)
{
int i,j,v;
i=0,j=0;
while(i<strlen(string1)&&j<strlen(string2))
{
if(string1[i]==string2[j]
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(j>=strlen(string2) v=i-strlen(string2);
else v=-1;
return(v);
}
xuzheng318 2004-11-11
  • 打赏
  • 举报
回复
Each of these functions returns a pointer to the first occurrence of strCharSet in string, or NULL if strCharSet does not appear in string. If strCharSet points to a string of zero length, the function returns string.
snowred_bai 2004-11-11
  • 打赏
  • 举报
回复
char *strstr( const char *string, const char *strCharSet );的返回值是什么呀?
beyondtkl 2004-11-10
  • 打赏
  • 举报
回复
int GetStrPos(const char* pSource, const char* pSearch)
{
int nResult = -1;
char *cp = (char *) pSource;
char *s1, *s2;

if ( !*pSearch )
return nResult;

while (*cp)
{
s1 = cp; // str1
s2 = (char *) pSearch; // str2

while ( *s1 && *s2 && !(*s1-*s2) )
s1++, s2++;

if (!*s2) // s2 ËùÓеĶ¼ÒѾ­±È½Ï ÇÒ¶¼Æ¥Åä
{
nResult = abs((DWORD)s1 - (DWORD)pSource - lstrlen(pSearch)); // ÒòΪs1ÒѾ­¶àÒƶ¯ÁËlstrlen(pSearch)
return nResult;
}

cp++;
}
return nResult;
} // 经测试OK
beyondtkl 2004-11-10
  • 打赏
  • 举报
回复
看错了。。是俩个字符串。。。

用一楼说的strstr函数OK
beyondtkl 2004-11-10
  • 打赏
  • 举报
回复
主要 函数。。

int GetCharPos(const char* pSource, char ch)
{
int nResult = -1;
char* pStart = (char*) pSource;
while (*pStart)
{
if (pStart[0] == ch)
{
nResult = abs((DWORD)pStart - (DWORD)pSource);
return nResult;
}
pStart++;
}
return nResult;
}

int main(int argc, char* argv[])
{
printf("%d ", GetCharPos("ABCDEF", 'B'));
return 0;
}
xuzheng318 2004-11-10
  • 打赏
  • 举报
回复
用char *strstr( const char *string, const char *strCharSet );
例子:
#include <string.h>
#include <stdio.h>

char str[] = "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] = " 1 2 3 4 5";
char fmt2[] = "12345678901234567890123456789012345678901234567890";

void main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n\t%s\n", string );
printf( "\t%s\n\t%s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = pdest - string + 1;
if( pdest != NULL )
printf( "%s found at position %d\n\n", str, result );
else
printf( "%s not found\n", str );
}


Output

String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890

lazy found at position 36

64,684

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧