Altro problema con le stringhe

Di nuovo buongiorno a tutti,
quest'oggi sarei a sottopormi un piccolo problema da me riscontrato del quale non capisco la risoluzione. Iniziamo:
Ho definito 2 stringhe una contenente la password di default e una che conterrà una nuova password inserita da utente:

char pwd[16] = "password";
char npwd[16];

Dal webserver, fatti gli opportuni riferimenti, attraverso un ciclo For riesco a riempire npwd con la stringa inserita dall'utente:

int k = 1;
for (int i=17; i<=32; i++){
if (strncmp(&httpIN*, " ", 1) == 0) break;*

  • else {*
    _ npwd[k] = httpIN*; _
    _
    k++;_
    _
    }_
    _
    }_
    E anche questo ho verificato che funzioni. Ora la mia mente mi suggerì che facendo un secondo ciclo For avrei potuto trasferire i dati contenuti in npwd nella stringa pwd quindi ho impostato un nuovo ciclo:
    _
    for (int i=1; i<=strlen(npwd); i++) {_
    pwd _= npwd;
    }*

    Dove sta il problema? Semplice: strlen restituisce 0 nonostante io abbia già controllato che la stringa npwd è stata correttamente riempita dal primo ciclo for. Ho provato anche ad inserire come ultimo carattere di npwd '\0' ma la cosa non è cambiata... Qualcuno ha qualche suggerimento??
    Grazie mille come sempre :slight_smile:_

Scusate errore da niubbo... gli array partono da 0 e non da 1... sorry...

si è vero che gli array partono da 0 e non da 1, ciò non dovrebbe influire su ogni singolo bit...in pratica dovrebbe copiare lo stesso il valore dalla pwd alla npwd solo che dopo la pwd si trovera 2 celle [0] e [1] contenenti la prima il valore della vecchia pw(se gia settato) e l'altro [1] un valore a caso...però mi sembra strano che la strlen(npwd) dia 0 vuol dire che il primo carattere npwd[0] lo considera come '/0'

ma i cicli sono quelli che hai usati o li hai "solo riscritti"?
se no il problema potrebbe essere veramente in [0] che nn scrivendoci dentro rimane "/o" nullo e quidi come ultimo carettere di controllo..
ma le ho viste ieri per la prima volta le stringhe....