char型の配列について質問です
Posted: 2013年10月13日(日) 21:14
#include<stdio.h>
#include<windows.h>
#define MAX_LENGTH 30
void main ()
{
char str[MAX_LENGTH];
char answer[MAX_LENGTH];
int cCount = 0;
printf("input numeric string:");
scanf("\n%s",str);
//マイナスから入力されたときのflg
if(str[cCount]=='-')
{
answer[cCount] = str[cCount];
cCount++;
}
while(str[cCount])
{
printf("%d\n",str[cCount]);
//文字か数字か判定・数字がアクティブな配列に来る限り数字をanswerに格納
if(str[cCount]>48 && str[cCount]<57)
{
answer[cCount] = str[cCount];
cCount++;
}
//文字が来たら終了
else
{
break;
}
}
//出来上がった数字の文字列を出力
printf("Changed \"%s\" to %s",str,answer);
Sleep(10000);
}
教科書の課題を進めていたのですが
問題の内容が「最大30文字の数字列を入力させ、数値に変換して出力するプログラムを作成せよ
尚、数字以外の文字列が含まれていた場合は、その文字列前に格納されている文字列を変換の対象としてください
先頭文字が'-'の場合は負の値として変換してください」とのことでした
早速作ってみたのですがanswer[]の配列に11行目のscanf("\n%s",str);が入ってしまいます
最後の出力結果でanswerの出力結果には 代入された値フフフフフフフフフフフフフフフフフstrの文字列 が出力されてしまいます
どうすれば代入された値だけ出力することができるのでしょうか
#include<windows.h>
#define MAX_LENGTH 30
void main ()
{
char str[MAX_LENGTH];
char answer[MAX_LENGTH];
int cCount = 0;
printf("input numeric string:");
scanf("\n%s",str);
//マイナスから入力されたときのflg
if(str[cCount]=='-')
{
answer[cCount] = str[cCount];
cCount++;
}
while(str[cCount])
{
printf("%d\n",str[cCount]);
//文字か数字か判定・数字がアクティブな配列に来る限り数字をanswerに格納
if(str[cCount]>48 && str[cCount]<57)
{
answer[cCount] = str[cCount];
cCount++;
}
//文字が来たら終了
else
{
break;
}
}
//出来上がった数字の文字列を出力
printf("Changed \"%s\" to %s",str,answer);
Sleep(10000);
}
教科書の課題を進めていたのですが
問題の内容が「最大30文字の数字列を入力させ、数値に変換して出力するプログラムを作成せよ
尚、数字以外の文字列が含まれていた場合は、その文字列前に格納されている文字列を変換の対象としてください
先頭文字が'-'の場合は負の値として変換してください」とのことでした
早速作ってみたのですがanswer[]の配列に11行目のscanf("\n%s",str);が入ってしまいます
最後の出力結果でanswerの出力結果には 代入された値フフフフフフフフフフフフフフフフフstrの文字列 が出力されてしまいます
どうすれば代入された値だけ出力することができるのでしょうか