所以即時通訊嘗試從使用strtok函數迭代通過用戶輸入的字符串獲取二進制數。如果用戶輸入alpha,則輸出0,如果用戶輸入beta,則輸出1.因此,如果用戶輸入「alpha beta alpha alpha alpha」,則輸出應該是「01010」。我有以下的代碼,但我不知道哪裏會出錯,因爲它沒有做我描述的行爲如何使用strtok打印二進制數字?
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
int main(int argc, char * argv[])
{
char userinput[250];
long binaryarray[250];
char *token;
int counter = 0;
long binarynumber = 0 ;
printf("enter alpha or beta");
scanf("%s", userinput);
token = strtok(userinput, " ");
while (token != NULL)
{
if(!strcmp(token, "alpha"))
{
binaryarray[counter] = 0;
counter += 1;
}
if(!strcmp(token, "beta"))
{
binaryarray[counter] = 1;
counter += 1;
}
token = strtok(NULL, " \0");
}
for(int i = 0; i < counter; i++)
{
binarynumber = 10 * binarynumber + binaryarray[i];
}
printf("%ld", binarynumber);
}
我該如何解決這個問題?
好吧,我剛剛發佈的實際代碼 – h101