gpt4 book ai didi

c++ - 在 C MBED 中使用 strstr,打印结果

转载 作者:行者123 更新时间:2023-11-28 05:42:44 26 4
gpt4 key购买 nike

我正在尝试比较两个字符数组并打印到终端,无论是否找到该字符串。当我运行我的代码时,打印的输出返回了一堆与我指定的内容无关的 jibber。我认为正在打印的内存比我指定的要多,但我不确定为什么。

Strstr 返回指向找到的字符串(如果找到)的起始索引的指针,如果没有则返回 null。我猜这是导致错误的原因 - 但我认为仅检查结果是否为 null 而不是打印结果将绕过此问题。

我的代码:

include "mbed.h"
include "string.h"

char input[] = "Hello mbed";
char value[] = "llo";

int main() {

char * output;

output = strstr(input, value);

bool found = false;

if (output != NULL) {
found = true;
}

printf(found ? "true" : "false");
}

我的输出:

trueloHello mbed½mà$Õ[F!FðMøDà(ÛÝéBÝ@\à0 ZFGñ@@Ñ. ZFGmºñªñÝÜàø ZFGm¸ñ¨ñôÜ[F!F«æ-+ -éðAF%FFÔà9F °GmdùÕ(F½èð-éðAF%FFÈÕ0'à ‘ÕàAF8F°GmdùÕ(F½èðJh*ÐhS pHh@HpGðµ F°F2¡ü÷Èø(¿%0OÐWø%H±m -ùÓGà-IhB`°ð½ -?Ò x:(Ð!FhFþ÷ýhFþ÷mý(3ÐhFþ÷mý(hF Ðþ÷Uý#àjF¡ Fh0FG(¿Gø%è°ð½Oðÿ0°ð½ð ¿$ÛÑð ¿$Õç:ttl :%p(¼¿ pGJëPø ......

最佳答案

这里是一个更正的代码,可以干净地编译并按预期工作

注意 printf() 参数的设置方式

注意 #include 语句的更正列表

//include "mbed.h"
#include <stdio.h> // printf()
#include <string.h> // strstr()
#include <stdbool.h> // bool, true, false

char input[] = "Hello mbed";
char value[] = "llo";

int main( void )
{

char * output = strstr(input, value);

bool found = false;

if (output)
{
found = true;
}

printf( "%s\n", ((found)? "true" : "false" ));
}

关于c++ - 在 C MBED 中使用 strstr,打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36812067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com