buchstaben tauchen auf wo sie nicht sein sollen

  • buchstaben tauchen auf wo sie nicht sein sollen

    Hallo

    ich habe mir ein kleines tool wür windows gemacht um eine datei auszulesen in der datei gibt es in jeder zeile immer einen namen ein datum und einen link bei dem tool kann ich jetzt einen namen eingeben und es sucht mir alle zeilen mit dem namen raus und wenn ich dann eins der suchergebnisse auswähle soll der dazugehörige link mit wget.exe gestartet werden das geht soweit alles aber der packt hinter die links immer irgentwelche buchstaben z.b. www.irgentwas.de/test.rarV ich weis nicht wo dieses V am ende herkommt es muss auch nicht unbedingt ein V sein manchmahl kommt auch ein N oder sonst was kann mir jemad helfen ? hier ist der code

    Quellcode

    1. #include <stdio.h>
    2. #include <string.h>
    3. #include <stdlib.h>
    4. char *getUrl (char *s_file) {
    5. char *ret;
    6. char line[256];
    7. char **list;
    8. char **url;
    9. char seek[256];
    10. int chose;
    11. int i_list=0;
    12. FILE *file = fopen (s_file, "rt");
    13. list = new char*[1];
    14. url = new char*[1];
    15. printf("Insert seek-name\n");
    16. scanf("%s", seek);
    17. fgets (line, 255, file);
    18. while (!feof (file)) {
    19. char *name;
    20. char *tmpurl;
    21. {
    22. int namelen=0;
    23. int urlstart=0;
    24. int urllen=0;
    25. for (namelen=0; line[namelen]!='\0' && line[namelen]!=','; namelen++);
    26. name = new char[namelen+1];
    27. for (int i=0; i<namelen; i++) name[i] = line[i];
    28. name[namelen+1] = '\0';
    29. for (urlstart=namelen+1; line[urlstart]!='\0' && line[urlstart]!=','; urlstart++);
    30. urlstart +=2;
    31. urllen = strlen(line)-urlstart-1;
    32. tmpurl = new char[urllen+1];
    33. for (int i=0; i<urllen; i++) tmpurl[i] = line[urlstart+i];
    34. tmpurl[urllen+1] = '\0';
    35. }
    36. for (int i=0; i<=strlen(name); i++) {
    37. if (name[i] == seek[0]) {
    38. for (int i2=1; i2<=strlen(seek); i2++) {
    39. if (name[i+i2] != seek[i2] && i2 < strlen(seek)) break;
    40. if (i2 == strlen(seek)) {
    41. char **tmp;
    42. tmp = list;
    43. list = new char*[i_list+1];
    44. for (int i3=0; i3<i_list; i3++) {
    45. list[i3] = tmp[i3];
    46. }
    47. delete [] tmp;
    48. list[i] = new char[strlen (name)];
    49. strcpy (list[i_list], name);
    50. tmp = url;
    51. url = new char*[i_list+1];
    52. for (int i3=0; i3<i_list; i3++) {
    53. url[i3] = tmp[i3];
    54. }
    55. delete [] tmp;
    56. url[i] = new char[strlen (tmpurl)];
    57. strcpy (url[i_list], tmpurl);
    58. i_list++;
    59. }
    60. }
    61. }
    62. }
    63. delete [] name;
    64. delete [] tmpurl;
    65. fgets (line, 255, file);
    66. }
    67. for (int i=0; i<i_list; i++) printf ("%d. \"%s\" URL:%s\n", i+1, list[i], url[i]);
    68. do {
    69. printf ("Choose one:\n");
    70. scanf ("%d", &chose);
    71. } while (chose > i_list);
    72. ret = new char [strlen (url[chose-1])+1];
    73. strcpy (ret, url[chose-1]);
    74. for (int i=0; i<i_list; i++) {
    75. delete [] list[i];
    76. delete url[i];
    77. }
    78. delete [] list;
    79. delete [] url;
    80. printf ("%s choosed\n", ret);
    81. return ret;
    82. }
    83. int main (int i_args, char **args) {
    84. char wget[512];
    85. char *tmp;
    86. if (i_args == 1) {
    87. printf ("\nKeine Liste angegeben\n");
    88. return -1;
    89. }
    90. tmp=getUrl(args[1]);
    91. printf ("%s choosed\n", tmp);
    92. sprintf (wget, "wget %s", tmp);
    93. printf ("%s\n", wget);
    94. delete [] tmp;
    95. system (wget);
    96. return 0;
    97. }
    Alles anzeigen