ライブラリ関数
文字列をコピーする(strcpy)
文字列の長さを調べる(strlen)
配列の長さを調べる(sizeof)
#include <stdio.h>
#include <string.h>
int main(void)
{
char s1[128] = "ABCD";
char s2[128] = "EFGH";
char s3[128] = "IJKL";
strcpy(s2, s1);
strcpy(s3, s2);
puts("s1をs2にs2をs3にコピーしました。");
printf("s1 = %s\n", s1);
printf("s2 = %s\n", s2);
printf("s3 = %s\n", s3);
printf("文字列%sの長さは%uです。\n",s3,(unsigned)strlen(s3));
printf("文字列%sの長さは%uです。\n",s3,strlen(s3));
return (0);
}
char *strcpy(char *d, const char *s)
{
while (*d++ = *s++)
printf("pointer=%s \n",d);
}
/* 文字列sをdにコピーする[配列版] */
char *strcpy(char d2[], const char s2[])
{
unsigned i=0;
while (d2[i] = s2[i]){
i++;
printf("hairetsu=%s\n",&d2[i]);
}
}
/*--- 文字列strの長さを返す[ポインタ版] ---*/
size_t strlen(const char *s)
{
size_t len = 0;
while (*s++)
len++;
return (len);
}
/*--- 文字列strの長さを返す[配列版] ---*/
unsigned strlen(const char str[])
{
unsigned len = 0;
while (str[len]) len++;
return (len);
}
c:\program files\microsoft visual studio 8\vc\include\string.h(73) : 'strcpy' の宣言を確認してください。
メッセージ: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\program files\microsoft visual studio 8\vc\include\string.h(73) : 'strcpy' の宣言を確認してください。
メッセージ: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
c:\documents and settings\owner\my documents\visual studio 2005\projects\test8-3\test8-3\test8-3.c(48) : error C2084: 関数 'char *strcpy(char *,const char *)' は既に本体を持っています。
c:\program files\microsoft visual studio 8\vc\include\string.h(73) : 'strcpy' の前の定義を確認してください
c:\documents and settings\owner\my documents\visual studio 2005\projects\test8-3\test8-3\test8-3.c(68) : error C2084: 関数 'size_t strlen(const char *)' は既に本体を持っています。
c:\program files\microsoft visual studio 8\vc\include\string.h(80) : 'strlen' の前の定義を確認してください
上記の問題が解決できません。助けてください><
お礼
free( pGetEnv ); を追加することで解決しました。 全くの思い違いだったようです。。 ポインタを扱う際はもっと慎重にならないといけないですね。 また今後は思い込みでデバッグしないよう気をつけます。 問題解決したので、失礼ながらまとめてお礼とさせて頂きます。 ご回答ありがとうございました。