'\0'が無視される?
Posted: 2014年4月19日(土) 21:43
strcatを実装してみました。
文法的には正しいと思うのですが、関数strcatの1つ目のループを抜けられません。
Visualstdioでコーディングしています。環境的な問題なのでしょうか?ご教授願います。
以下にすべてのソースコードを掲載します。宜しくお願いします。
#include <stdio.h>
char* strcat ( char* s1, const char* s2);
int main(){
char ss [ 10 ] = "ABC";
char* ch;
ch = strcat ( ss, "xyz" );
}
char* strcat ( char* s1, const char* s2){
int i;
int s1_len;
s1_len = 0;
i = 0;
while ( * ( s1 + i ) != '\0'){
s1_len++;
}
i=0;
while ( * ( s2 + i ) != '\0'){
* ( s1 + s1_len ) = * ( s2 + i ) ;
}
return s1;
}
文法的には正しいと思うのですが、関数strcatの1つ目のループを抜けられません。
Visualstdioでコーディングしています。環境的な問題なのでしょうか?ご教授願います。
以下にすべてのソースコードを掲載します。宜しくお願いします。
#include <stdio.h>
char* strcat ( char* s1, const char* s2);
int main(){
char ss [ 10 ] = "ABC";
char* ch;
ch = strcat ( ss, "xyz" );
}
char* strcat ( char* s1, const char* s2){
int i;
int s1_len;
s1_len = 0;
i = 0;
while ( * ( s1 + i ) != '\0'){
s1_len++;
}
i=0;
while ( * ( s2 + i ) != '\0'){
* ( s1 + s1_len ) = * ( s2 + i ) ;
}
return s1;
}