C azonosítók
Írjon függvényt, amely a paramétereként megkapott tetszőleges hosszúságú
sztringről eldönti, hogy az a C/C++ nyelvek azonosítókra vonatkozó
elnevezési konvencióinak megfelel-e! Ha igen, akkor a függvény igaz
értéket, ha nem, hamisat adjon vissza! A C/C++ nyelvekben az elnevezési
konvenciók szerint az azonosítókban csak kisbetűket használnak, a
többszavas azonosítókban pedig a szavakat az aláhúzás ('_') karakterrel
választják el egymástól. Példa C/C++ azonosítókra: i,
long_and_mnemonic_identifier.
A függvény specifikációja
int is_c_identifier( char * );
Megjegyzés
A függvényt helyezze az identifier.c nevű állományba, és ezt az állományt küldje
be megoldásként a kiértékelő rendszernek! Megoldását a példa bemenetben szereplő adatokkal az
alábbi két állomány segítségével tesztelheti. Megoldásának kiértékelését a tesztelő rendszer
nem feltétlenül ezeknek az állományoknak a felhasználásával végzi!
main.c
#include <stdio.h>#include <stdlib.h>int main(){ char line[ 50 ]; int is_c_identifier( char * ); while ( gets( line ) != NULL ) if ( is_c_identifier( line ) ) puts( "YES" ); else puts( "NO" ); return EXIT_SUCCESS;}
letöltés szöveges állományként
Makefile
CC = gccOBJS = main.o identifier.oTARGETS = main all: $(TARGETS)main: main.o identifier.o $(CC) main.o identifier.o -o mainmain.o: main.c $(CC) -c main.cidentifier.o: identifier.c $(CC) -c identifier.cclean: rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
Példa bemenet
ilong_and_mnemonic_identifierit_contains_1numberit_contains_CapitalLettersdot.is_not_acceptedthisiscorrectalthoughthewordsarenotseparated__foofoo__foo_foo_barfoo__bar
letöltés szöveges állományként
A példa bemenethez tartozó kimenet
YESYESNONONOYESNONONONONOYESNO
letöltés szöveges állományként