c – 表达式在使用指针时必须具有类类型

c – 表达式在使用指针时必须具有类类型,第1张

概述我试图在string1中计算string2存在多少次.例如: string1 = abababd. string2 = ab. 结果:3. (我必须使用指针来解决这个问题) 到目前为止我所拥有的: int mystr(char* s, char* t) { int counter = 0; int length = strlen(t); while (*s != '\0') 我试图在string1中计算string2存在多少次.例如:
string1 = abababd.
string2 = ab.
结果:3.

(我必须使用指针来解决这个问题)

到目前为止我所拥有的:

int mystr(char* s,char* t) {    int counter = 0;    int length = strlen(t);    while (*s != 'substr')    {        char d[] = *s.substr(0,2);        if (*s == *t)            counter++;        *s += length;    }    return counter;}

我一直收到这个问题:
表达式必须具有此行的类类型:char d [] = * s.substr(0,2);
有人可以协助吗?

解决方法 std::string
int mystr(char* s,char* t) {    int counter = 0;    int length = strlen(t);    // while we haven't reach the end of string    while (*s != '
if (*s == *t)    counter++;
') { // this is not used anywhere,and it's wrong. Why 2? You want the length of `t` there,if you would use it anyway char d[] = *s.substr(0,2); // this is wrong. It will increase the counter,// every time a character of the substring is matched with the // current character in the string if (*s == *t) counter++; // you want to read the next chunk of the string,seems good for a start *s += length; } return counter;}
类的方法.

你在这里使用C指针(char * s),所以没有substr()来调用,因此错误.

当然,我会将实施留给您,但您可以从create my own substr获得灵感.

由于OP在试图做自己的硬件方面表现出诚意,所以让我们对这个方法进行评论:

所以现在,您应该关注如何检查字符串中当前子字符串是否匹配.所以,你需要改变这个:

从当前位置检查t的所有字符与字符串的相同字符数.所以,你需要遍历* s.多少次?与t的长度一样多.

在该迭代中,您需要检查字符串s的当前字符是否与字符串t的当前字符相等.当迭代结束时,如果在该迭代期间访问过的所有字符都相同,则表示您找到了匹配项!所以,如果这是真的,那么我们应该增加计数器.

奖励:如果你有时间,并且完成了上面讨论的逻辑,那么考虑* s = length;这个输入:`s =“dabababd”,t =“ab”.

总结

以上是内存溢出为你收集整理的c – 表达式在使用指针时必须具有类类型全部内容,希望文章能够帮你解决c – 表达式在使用指针时必须具有类类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存