C nie działająca pętlą w C <nowy>

0

Witam pomożecie z tym programem ? nie potrafię zrozumieć co robię źle. W c++ to działa natomiast w C samym nie chce :(

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


int main()
{
	char tab[11];
	int i;
	printf("Podaj Numer pesel:");
	scanf("%s", tab);
	printf("Numer pesel to:");

	for (i = 0; i < 11; i++)
	{

		printf("%s", tab[i]);


	}


	system("pause");
	return 0;
}
1

PESEL ma 11 znaków. scanf z %s zapisuje wczytane znaki + 1 znak null, czyli dla 11-znakowego PESEL - 12 znaków. Do 11-znakowej tablicy. Krótko mówiąc: UB.

Ponadto w pętli próbujesz wyświetlić każdy znak jako ciąg znaków. Albo %c i wyświetlasz znaki, albo %s i wyświetlasz string, bez pętli.

@Artur Pyśk wth? tab decayuje spokojnie do char*. A pomysł z wczytywaniem 11-znakowej liczby do 32-bitowej¹ zmiennej jest, delikatnie mówiąc, poroniony.

¹ na 99% OP używa architektury z 32-bitowym intem.

0

Dałem %c i wszystko działa jak należy :) Dziękuję mega za pomoc ! a ty jakbyś inaczej to zrobił ?

0

Jedyne co mogę dodać to taki błąd przy zakończeniu programu "Run-Time Check Failure #2 - Stack around the variable 'tab' was corrupted."

0

Okej dodałem tab[12] wszystko działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1