Strings (Zeichenketten)
Realisieren Sie ein C-Programm, das eine Zeichenkette einliest,
aber nur die ersten 5 zulaessigen Zeichen erfasst. Zulaessig sollen nur
Buchstaben und Ziffern ( A-Z; a-z; 0-9 ) sowie die Sonderzeichen '.' ',' '-' sein.
Alle anderen Zeichen sollen ignoriert, d. h. nicht erfasst werden.
Hinweis:
Die Ueberpruefung soll nach Abschluss der kompletten Eingabezeile erfolgen ( durch {ENTER} o. {RETURN} )
und nicht schon waehrend der Eingabe der einzelnen Zeichen!
0 Kommentare
4 Lösung(en)
function validChars(str) {
str = str.replace(/[^A-Z^a-z^0-9^,^.^-]/g, '');
return str.substring(0, 5);
}
// test
console.log( validChars('Test') ); // Test
console.log( validChars('Test24') ); // Test2
console.log( validChars('Te$t24') ); // Tet24
console.log( validChars('TeSt!-4') ); // TeSt-
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
// NET 5.x; C# 9.x
using static System.Console;
using System.Collections.Generic;
using System.Text.RegularExpressions;
List<string> l = new() { "12test", "!123test", "t.est45!", "12**34!6" };
l.ForEach(x => WriteLine(string.Join("", new Regex(@"[a-zA-Z0-9\.\,\-]").Matches(x))[..5]));
Lösung von: Jens Kelm (@JKooP)
#include <stdio.h>
#include <string.h>
int main(void)
{
char input[31];
char output[6];
int counter = 0;
printf("Bitte Zeichenkette (max. 30 Zeichen) eingeben: ");
scanf("%[^\n]", input);
for (int i = 0; i < strlen(input); i++)
{
if (input[i] >= '0' && input[i] <= '9' ||
input[i] >= 'A' && input[i] <= 'Z' ||
input[i] >= 'a' && input[i] <= 'z' ||
input[i] == '.' || input[i] == ',' || input[i] == '-') {
strncat(output, &input[i], 1);
counter++;
}
if (counter == 5) break;
}
printf("%s", output);
return 0;
}
Lösung von: Jens Kelm (@JKooP)
def get_valid_chars(s, n_chars=5):
def is_valid(char):
return 'A' <= char <= 'Z' or 'a' <= char <= 'z' or '0' <= char <= '9' or char in ('.', ',', '-')
out = ""
for char in s:
if not is_valid(char):
continue
out += char
if len(out) == n_chars:
return out
return out
print(get_valid_chars('Test')) # Test
print(get_valid_chars('Test24')) # Test2
print(get_valid_chars('Te$t24')) # Tet24
print(get_valid_chars('TeSt!-4')) # TeSt-
Lösung von: Name nicht veröffentlicht
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.25 |
Schwierigkeit: | Mittel |
Webcode: | 28hw-dsmj |
Autor: | () |