我在盡我所能去理解memchr函數,但有一些簡單輸出的問題。我在* newchar的末尾添加了額外的字符。memchr返回意外字符
#include <stdio.h>
#include <string.h>
int main() {
char plus[6] = "12+123";
char *newchar = (char*) memchr(plus,43,3);
printf("%s",newchar);
}
輸出:
+123('
我有望獲得 「+123」,爲什麼它給我多餘的字符?我注意到輸出是一致的,這讓我更早感到困惑,它似乎並不是從內存中隨機取出的,而是由memchr函數引起的。
請記住,在C字符串是真的叫***空值終止字符串***。 –
你不需要演員表 –
你爲什麼用'43'而不是''+''? –