c++,看我哪错了,位置t总找不对?

#include <stdio.h>
#include <string.h>
void main()
{
char s1[100],s2[100];
char t;
printf("请输入一个主字符串:");
gets(s1);
printf("请输入一个子字符串:");
gets(s2);
t=strstr(s1,s2);
if(t!=0)
{
printf("子字符串出现的位置:%d\n",t-27);
}
else
{
printf("主字符串中不包含子字符串\n");
}
}
错误:
C:\Users\WD\Desktop\H11_1.CPP(11) : error C2440: '=' : cannot convert from 'char *' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
执行 cl.exe 时出错.

第1个回答  2012-12-25
这是strstr的函数原型:char* strstr(const char* string,const char* strCharSet);
返回的是第二个字符串在第一个子串中的位置,注意返回的是char*类型的,这个怎么用呢?
1、得到子串的在string的起址 即你的程序中t-s1
2、直接根据返回值是否为null判断是否s1含有 s2
第2个回答  2012-12-25
函数strstr()返回的是一个指针,而你的t却是一个char 型变量。所以有错。把
char t 改为 char *t 就不会有错了。
第3个回答  2012-12-25
都说了是11行有问题了。
strstr返回的是一个char的指针
或者楼主可以
char* t
print("子字符串出现的位置:%d\n",t-s1);本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网