可変長の文字列 (ただし、常に 100 文字未満) を受け取り、文字列に含まれるデータを個々の変数に返すプログラムを (javascript から) 変換しています。これは私のコードの最初の部分であり、明らかに、私は C とプログラミング全般に不慣れです。このコードはコードの最初のセクションのためのものですが、これを適切にコーディングする方法を学ぶことで、残りの部分をコーディングする方法を知ることができます。
私は欲しい:
- 「stringID」として格納される最初の 4 桁
- 「myindicator」として格納される 5 桁目
- 「var1」として格納される 6 桁目から (インジケータ + 6) 桁
入力例:
「12345678901234567890123」
出力例:
- 文字列 ID = 1234
- マイインジケーター = 5
- var1 = 67890123456
プログラムを実行すると、'String ID: H>a' が返され、プログラムがクラッシュします。どんな助けでも大歓迎です。いいえ、これは宿題ではありません。
int main()
{
char mystring[100];
char *stringID;
int nep;
int *myindicator;
char *var1;
nep = 0;
printf("Please enter your CODE\n");
scanf("%s", &mystring);
stringID = (char *)malloc(4 * sizeof(char));
if(NULL != stringID)
{
strncpy(stringID, mystring, 4);
stringID[4] = '\0';
free(stringID);
nep = nep +4;
printf("stringID: %s\n",myindicator);
}
if(NULL != myindicator)
{
strncpy(myindicator, (mystring+nep, 1);
nep++;
myindicator = *myindicator - '0';
printf("Indicator : %d\n",myindicator);
}
var1 = (char *)malloc((nep + 6) * sizeof(char));
if(NULL != var1)
{
strncpy(var1, mystring+nep, (myindicator+nep+6));
var1[myindicator+nep+6] = '\0';
free(var1);
printf("Var 1: %s", var1);
nep = nep +myindicator+6;
}
getchar();
return 0;
}