#include <stdio.h>
int mystrncmp(char *s,char *t,int n) {
while( *s == *t ) {
if ( *s == '\0' || !--n ) {
return 0;
}
*s++;
*t++;
}
return *s - *t;
}
int main (void) {
char str[] = "abc";
printf("%d\n",mystrncmp(str,"ab",3));
printf("%d\n",mystrncmp(str,"abc",3));
printf("%d\n",mystrncmp(str,"abced",3));
printf("%d\n",mystrncmp(str,"abced",6));
return 0;
}
こちらのコード(strncmpの自作関数)の 3行目 【!--n】の意味をおしえてください。
n != n-1 ということでしょうか?これを含める理由がわかっていません。よろしくお願い致します。
前置きと後置きの違いはご存じですか?
ソースコードを「```C」の行と、「```」の行で挟んでください。
mystrncmp("abc", "", 0) が 0 になりません。
strncmp("abc", "", 0) は 0 です。
使う意味がよくわかりました!ありがとうございます。
「```C」と「```」で挟む意味が分かったのなら、質問を編集してください。
ソースコードを「```C」の行と、「```」の行で挟んでください。
ここの文章の意味は理解できていません
具体的には「```C」の行と、「```」の行 がどこを指すのかがわかりません
```C
#include <stdio.h>
...
}
```
ソースコードを「```C」の行と、「```」の行で挟んでください。
teratail の「質問をするときのヒント」をよく読んでください。
まあ直接の回答じゃないのでこっちに書きますが、tのヌル文字判定も入れた方が良いのでは?
> tのヌル文字判定
無くて大丈夫に見えますけど…。
回答1件
あなたの回答
tips
プレビュー