Avatar billede nbruger Nybegynder
31. august 2001 - 13:45 Der er 3 kommentarer og
1 løsning

roter tegn i et array

nogen der kan lave en fucktion der roterer tegne i et array x antal pladser?
f.eks. hvid x = 5 og vi har char array[] = \"dette er et array\" så flyttes alt fem pladser frem og de sidste fem tegn er de første.
Avatar billede wisen Nybegynder
31. august 2001 - 13:49 #1
Hmm; jeg kender ikke lige nogen, man kan du ikke bare bruge noget kopiering. Lav en temporær kopi at array\'et og kopier de flyttede tegn deroveri, derefter kopiere du bare tilbage igen...
Avatar billede wisen Nybegynder
31. august 2001 - 13:51 #2
..prøv at kikke på \"strncpy\"...

hvilken compiler bruger du ?
Avatar billede henrik_ffc Nybegynder
31. august 2001 - 13:52 #3
Opret et nyt array med samme størrelse,
strcpy(nytarray, array[strlen(array) - x] ;
array[strlen-x] = \'\\0\';
strcat(nytarray, array);
Avatar billede soepro Nybegynder
31. august 2001 - 13:59 #4
Unødvendigt - prøv dette her:
#include <string.h>
#include <conio.h>
#include <mem.h>

void shiftarray(char *s, int i)
{
  char tmp;
  int  len = strlen(s);

  // Skifter strengen 1 tegn mod venstre.
  for (tmp = 0; tmp < i; tmp++)
  {
    tmp = *(s+len-1);
    memcpy(s+1, s, len-1);
    *s  = tmp;
  };
}

int main(void)
{
  char array[] = \"dette er et array\";

  shiftright(array, 1);
  cputs(array);
  shiftright(array, 3);
  getch();
  return 0;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester