Ich brauche Hilfe Leerzeichen und Sonderzeichen aus einem Char-Array zu entfernen. Das Problem, das ich laufe, ist, dass die Löschfunktion nur auf String-Datentypen funktioniert, wenn ich mich nicht irre . Die Zuweisung erfordert ein Char-Array, keine Zeichenfolge, also kann ich sie nicht einfach konvertieren oder habe eine String-Variable. Ich habe versucht, es nachzuschlagen, aber alles mögliche schlägt nur vor, es in eine Zeichenkette umzuwandeln oder als Schnur anzufangen, die ich nicht tun kann. Ich bin neu in der Programmierung und Zeiger sind ein bisschen komisch für mich, wenn die Antwort offensichtlich ist, tut es mir leid. Vielen Dank an alle, die Ihnen geholfen haben.Entfernen/Löschen von Zeichen aus Char-Array [] mit Zeigern
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <ctype.h>
using namespace std;
int main()
{
const int SIZE = 80;
char str[SIZE];
char* strPtr;
int strlength;
int j = 0;
int front = 0, back; int flag = 1;
strPtr = str;
cout << "This program checks for palidromes." << endl;
cout << "Please enter a phrase." << endl;
cout << endl;
cin.getline(str, SIZE);
//Get the length of string str
strlength = strlen(str);
//Convert all the characters in the string str to uppercase
for (int i = 0; i < strlength; i++)
{
if (!isupper(str[i]))
str[i] = toupper(str[i]);
}
//Remove all the special characters except letters a - z
for (int i = 0; i < strlength; i++)
if (!isalpha(str[i])||(!isalnum(str[i])))
{
str.erase(str[i]); // need help here. Not sure how to go about it.
}
//str[j] = '\0';
return 0;
}
Ich mag eigentlich die Verwendung von Lambdas hier. +1 –