2017-01-08 3 views
0

In meinem C-Programm bekomme ich eine Eingabe wie folgt: 1,2,5,13,18 Wie kann ich diese Zeichenfolge zu tatsächlichen Zahlen drehen? Ich versuchte strtok(), aber es gab mir segmentation Fehler und ich habe keine Ahnung warum, vielleicht können Sie mir auf der Seite helfen?In C, wie konvertiere ich einen String, der Zahlen enthält, in ein int-Array?

+0

Hallo Tom! In welcher Sprache programmieren Sie? –

+0

Ich verwende C mit ansi 90 –

+1

Könnten Sie den Code teilen, den Sie gerade versuchen? Ich denke in diesem Fall würden 'strtok' und' atoi' den Job für dich erledigen. – IanC

Antwort

0

Ich brauche den Code zu sehen, aber das könnte genügen:

#include<stdio.h> 
#include<stdlib.h> 

int main(int argc, char *argv[]){ 

int arr[argc]; 
int i; 

for(i = 1; i < argc; i++){ 
    arr[i] = atoi(argv[i]); 
} 

return 0; 
} 

Kredit dies >>> geht für weitere Informationen Check out: Converting 'integer strings' to integer array

1

Sie haben Ihren Code hier nicht gegeben, sein kann Sie verwenden strtok() nicht ordnungsgemäß. Bitte beachten Sie die Dokumentation und sehen Sie sich die Beispiele auf dieser Seite an, um mehr über die Verwendung von strtok() zu erfahren.

Verwenden Sie strtok(), um die Zeichenfolge zu tokenisieren und dann atoi(), um die Zeichenfolge in eine Zahl zu konvertieren.

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 

int main() 
{ 
    char str[] = "1,2,5,13,18"; 
    char* pch; 
    pch = strtok(str, ","); 
    while(pch) 
    { 
     int x = atoi(pch); 
     pch = strtok(NULL, ","); 
     printf("%d\n", x); 
    } 

    return 0; 
} 
Verwandte Themen