我試圖寫出一些在C.提供的字符串函數我的代碼是實現:誤差mystrlen功能
#include <stdio.h>
#include <stdlib.h>
char *mystrcpy(char *s1, char *s2)
{
while(*s1++ = *s2++);
return s1;
}
int mystrlen(char *s)
{
int len = 0;
while(*s != '\0')
{
len++;
}
return len;
}
int main(void)
{
char arr = "Hi";
char arr1[10];
char arr2[] = "Hello";
int length;
mystrcpy(arr1, arr2);
printf("%s", arr1);
length = mystrlen(arr);
printf("%d", length);
return 0;
}
mystrcpy
工作正常,但mystrlen
並沒有執行其他的方法。什麼可能是錯誤?以下是該程序終止注:
過程與狀態-1073741510終止(0分鐘,4秒)
此外,還有相關的鑄件少的警告。代碼中有沒有我應該使用任何演員的地方?
在一般情況下,它是閱讀和發佈前消除所有的編譯器警告一個好主意,你的問題:您可能會更快地解決您的問題。 – dasblinkenlight
mystrcpy返回s1的結束,而應該返回頂部。 – BLUEPIXY
@BLUEPIXY:我怎樣才能讓它返回字符串的頂部? –