J'écris un programme qui déchiffre des phrases, des syllabes et des mots donnés dans un fichier texte de base.Reconnaître les espaces dans le texte
Le programme parcourt le fichier caractère par caractère. Il regarde d'abord s'il s'agit d'une sorte de marqueur de fin de phrase, comme !
?
:
;
ou .
. Ensuite, si le caractère n'est pas un espace ou une tabulation, il suppose qu'il s'agit d'un caractère. Enfin, il identifie que s'il s'agit d'un espace ou d'une tabulation, et que le dernier caractère avant qu'il ne s'agisse d'une lettre/caractère valide (par exemple, pas un marqueur de fin de phrase), c'est un mot. J'ai été un peu léger sur les détails, mais voici le problème que j'ai. Mon nombre de mots est égal à mon nombre de phrases. Ce à quoi il interprète, c'est qu'il se rend compte qu'un mot s'arrête quand il y a un marqueur de fin de phrase, MAIS le vrai problème est que les espaces sont considérés comme des lettres valides.
Heres mon instruction if, de décider si le personnage en question est une lettre valide en un mot:
else if(character != ' ' || character != '\t')
Je l'ai déjà Exclue des marqueurs de fin de phrase par ce point dans le programme. (Dans l'original si effectivement). En lisant une table Ascii, 32 devrait être le caractère d'espace. Cependant, quand je produis tous les caractères qui le font dans ce bloc de code, les espaces sont dedans.
Alors qu'est-ce que je fais mal? Comment puis-je empêcher les espaces de passer à travers ce si? Merci d'avance, et j'ai le sentiment que la question peut être un peu vague ou mal formulée. Si vous avez des questions ou besoin d'éclaircissements, faites le moi savoir.
Yikes! Utilisez des littéraux de caractères, mec! Il n'y a aucun intérêt à vous rendre le code * deux * plus difficile à lire et le jeu de caractères dépendant. Comme ceci 'character! = ''' ... Et utilisez ''\ t'' pour l'onglet. – dmckee