Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

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

Bitte melde dich an um einen Kommentar abzugeben

7 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

import re
string=input("Eingabe: ")
print(''.join(re.findall('[A-Za-z0-9,.-]',string)[0:5]))
                

Lösung von: rob ert (tub)

' VBA
' "Microsoft VBScript Regular Expression x.x" einbinden

Const PAT_CHR As String = "[a-zA-Z0-9\.\, \-]"
Const NUM_STR As Integer = 5

Sub Main()
    Dim reg As New RegExp
    Dim arr_out(NUM_STR - 1) As String, chr As String
    Dim arr_in As Variant, s As Variant
    Dim k As Integer, i As Integer
    
    arr_in = Array("12test", "!123test", "t.est45!", "12**34!6")
    reg.Pattern = PAT_CHR
    For Each s In arr_in
        k = 0
        For i = 1 To Len(s)
            chr = Mid(s, i, 1)
            If k < NUM_STR And reg.Test(chr) Then
                arr_out(k) = chr
                k = k + 1
            End If
        Next i
        Debug.Print Join(arr_out, ", ")
    Next
End Sub
                

Lösung von: Jens Kelm (@JKooP)

// C++ 14 | VS-2022
#include <iostream>
#include <string>

int main() {
    std::string input{}, output{};
    std::cout << "Bitte Zeichenkette eingeben: ";
    std::getline(std::cin, input);
    for (const auto& c : input) {
        if (std::isalnum(c) || c == '.' || c == ',' || c == '-') {
            output.push_back(c);
            if (output.size() > 4) break;
        }
    }
    std::cout << output << "\n";
}
                

Lösung von: Jens Kelm (@JKooP)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.25
Schwierigkeit: Mittel
Webcode: 28hw-dsmj
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen