Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Verwenden Sie die C-Sprache, um den WC-Befehl zu schreiben – zählen Sie die Anzahl der Zeichen, Wörter und Zeilen

Verwenden Sie die C-Sprache, um den WC-Befehl zu schreiben – zählen Sie die Anzahl der Zeichen, Wörter und Zeilen

Oct 26, 2020 am 11:26 AM
c语言 wc

Wir wissen, dass es im Linux-Betriebssystem einen sehr häufig verwendeten Befehl gibt, den Befehl wc, mit dem die Anzahl der Zeichen, Wörter und Zeilen gezählt wird. Versuchen wir heute, mit der C-Sprache ein Programm mit ähnlichen Funktionen zu schreiben (Hinweis: Zum Lesen dieses Artikels sind gewisse Grundkenntnisse der C-Sprache erforderlich).

Wenn Sie dieses Programm schreiben, müssen Sie die Verwendung von zwei Funktionen beherrschen, getchar() und putchar().

getchar wird verwendet, um ein Zeichen aus der Standardeingabe zu lesen, während putchar verwendet wird, um ein Zeichen auf der Standardausgabe auszugeben. Das Zählen der Anzahl der Standardeingabezeichen ist relativ einfach. Solange die Funktion getchar noch Zeichen lesen kann, erhöht sich die Variable, die die Anzahl der Zeichen zählt, um 1. Das Zählen der Zeilenanzahl ist ebenfalls einfach. Solange das gelesene Zeichen das Zeilenumbruchzeichen n ist, wird die Variable der statistischen Funktion um 1 erhöht.

Die Hauptschwierigkeit besteht hier darin, die Anzahl der Wörter zu zählen. Meine Idee besteht darin, eine Statusvariable IN_WORD festzulegen, wenn die gelesenen Zeichen Leerzeichen sind (Leerzeichen, horizontale Tabulatoren und Zeilenumbrüche sind alle Leerzeichen), den IN_WORD-Wert ist 0 und die Anzahl der gezählten Wörter bleibt unverändert. Wenn ein nicht leeres Zeichen gelesen wird, wird die Anzahl der gezählten Wörter um 1 erhöht. Der IN_WORD-Wert ist 1. Wenn der Statuswert 1 ist, auch wenn ein nicht leeres Zeichen Wird ein Zeichen gelesen, ändert sich die Anzahl der Wortstatistiken nicht.

Jetzt posten Sie den Code

#include <stdio.h>
#include <ctype.h>

#define IN_WORD 1
#define OUT_WORD 0

void main (void)
{
    int nc,nw,nl;
    char c,word_flag;
    
    nc = nw = nl = 0;
    word_flag = OUT_WORD;
    
    while ((c = getchar()) != EOF) {
        nc ++;
        
        if (c == &#39;\n&#39;) {
            nl ++;
        }
        
        if (!isspace(c) && word_flag == OUT_WORD) {
            nw ++;
            word_flag = IN_WORD;
        } else if (isspace(c) && word_flag == IN_WORD) {
            word_flag = OUT_WORD;
        } 
    }
    
    printf("%d\t%d\t%d\n", nc, nw, nl);
}
Nach dem Login kopieren

Der obige Code ist sehr einfach. Die drei Variablen nc, nw und nl zählen jeweils die Anzahl der Zeichen, Wörter und Zeilen. Word_flag wird zum Aufzeichnen des Status verwendet. Es gibt zwei Arten von Status: IN_WORD und OUT_WORD.

Als nächstes testen wir den obigen Code. Das Folgende ist ein Text:

Product-minded engineers are developers with lots of interest in the product itself. 
They want to understand why decisions are made, how people use the product, and love to be involved in making product decisions.
They&#39;re someone who would likely make a good product manager if they ever decide to give up the joy of engineering. 
I&#39;ve worked with many great product-minded engineers and consider myself to be this kind of developer. 
At companies building world-class products, product-minded engineers take teams to a new level of impact.
Nach dem Login kopieren

Der obige Text besteht aus insgesamt 86 Wörtern und insgesamt fünf Zeilen.

# cat 1.txt | ./a.out 
542 86 5
Nach dem Login kopieren

Sie sehen, dass das Programm die Anzahl der Zeichen, Wörter und Zeilen normal zählen kann.

Das obige ist der detaillierte Inhalt vonVerwenden Sie die C-Sprache, um den WC-Befehl zu schreiben – zählen Sie die Anzahl der Zeichen, Wörter und Zeilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

C Sprachdatenstruktur: Datenrepräsentation und Betrieb von Bäumen und Grafiken C Sprachdatenstruktur: Datenrepräsentation und Betrieb von Bäumen und Grafiken Apr 04, 2025 am 11:18 AM

C Sprachdatenstruktur: Die Datenrepräsentation des Baumes und des Diagramms ist eine hierarchische Datenstruktur, die aus Knoten besteht. Jeder Knoten enthält ein Datenelement und einen Zeiger auf seine untergeordneten Knoten. Der binäre Baum ist eine besondere Art von Baum. Jeder Knoten hat höchstens zwei Kinderknoten. Die Daten repräsentieren structTreenode {intdata; structTreenode*links; structTreenode*rechts;}; Die Operation erstellt einen Baumtraversalbaum (Vorbereitung, in Ordnung und späterer Reihenfolge) Suchbauminsertion-Knoten Lösches Knotendiagramm ist eine Sammlung von Datenstrukturen, wobei Elemente Scheitelpunkte sind, und sie können durch Kanten mit richtigen oder ungerechten Daten miteinander verbunden werden, die Nachbarn darstellen.

Die Wahrheit hinter dem Problem der C -Sprachdatei Die Wahrheit hinter dem Problem der C -Sprachdatei Apr 04, 2025 am 11:24 AM

Die Wahrheit über Probleme mit der Dateibetrieb: Dateiöffnung fehlgeschlagen: unzureichende Berechtigungen, falsche Pfade und Datei besetzt. Das Schreiben von Daten fehlgeschlagen: Der Puffer ist voll, die Datei ist nicht beschreibbar und der Speicherplatz ist nicht ausreichend. Andere FAQs: Langsame Dateitraversal, falsche Textdateicodierung und Binärdatei -Leser -Fehler.

Wie man einen Countdown in der C -Sprache ausgibt Wie man einen Countdown in der C -Sprache ausgibt Apr 04, 2025 am 08:54 AM

Wie gibt ich einen Countdown in C aus? Antwort: Verwenden Sie Schleifenanweisungen. Schritte: 1. Definieren Sie die Variable N und speichern Sie die Countdown -Nummer in der Ausgabe. 2. Verwenden Sie die while -Schleife, um n kontinuierlich zu drucken, bis n weniger als 1 ist; 3. Drucken Sie im Schleifenkörper den Wert von n aus; 4. Am Ende der Schleife subtrahieren Sie N um 1, um den nächsten kleineren gegenseitigen gegenseitigen gegenseitigen gegenseitig auszugeben.

Was sind die grundlegenden Anforderungen für C -Sprachfunktionen? Was sind die grundlegenden Anforderungen für C -Sprachfunktionen? Apr 03, 2025 pm 10:06 PM

C -Sprachfunktionen sind die Grundlage für die Code -Modularisierung und das Programmaufbau. Sie bestehen aus Deklarationen (Funktionsüberschriften) und Definitionen (Funktionskörper). C Sprache verwendet standardmäßig Werte, um Parameter zu übergeben, aber externe Variablen können auch mit dem Adresspass geändert werden. Funktionen können oder haben keinen Rückgabewert, und der Rückgabewerttyp muss mit der Deklaration übereinstimmen. Die Benennung von Funktionen sollte klar und leicht zu verstehen sein und mit Kamel oder Unterstrich die Nomenklatur. Befolgen Sie das Prinzip der einzelnen Verantwortung und behalten Sie die Funktion ein, um die Wartbarkeit und die Lesbarkeit zu verbessern.

CS-Woche 3 CS-Woche 3 Apr 04, 2025 am 06:06 AM

Algorithmen sind die Anweisungen zur Lösung von Problemen, und ihre Ausführungsgeschwindigkeit und Speicherverwendung variieren. Bei der Programmierung basieren viele Algorithmen auf der Datensuche und Sortierung. In diesem Artikel werden mehrere Datenabruf- und Sortieralgorithmen eingeführt. Die lineare Suche geht davon aus, dass es ein Array gibt [20.500,10,5,100, 1,50] und die Nummer 50 ermitteln muss. Der lineare Suchalgorithmus prüft jedes Element im Array Eins nach eins nach dem anderen, bis der Zielwert gefunden oder das vollständige Array durchquert wird. Der Algorithmus-Flussdiagramm lautet wie folgt: Der Pseudo-Code für die lineare Suche lautet wie folgt: Überprüfen Sie jedes Element: Wenn der Zielwert gefunden wird: Return Return Falsch C-Sprache Implementierung: #includeIntmain (void) {i

Fehlerbehebungstipps für die Verarbeitung von Dateien in der C -Sprache Fehlerbehebungstipps für die Verarbeitung von Dateien in der C -Sprache Apr 04, 2025 am 11:15 AM

Fehlerbehebungstipps für C -Sprachverarbeitungsdateien Wenn Dateien in der C -Sprache verarbeitet werden, können Sie auf verschiedene Probleme stoßen. Das Folgende sind häufig zu Problemen und entsprechende Lösungen: Problem 1: Der Dateicode kann nicht geöffnet werden: Datei*fp = fopen ("myFile.txt", "r"); if (fp == null) {// Datei Öffnen fehlgeschlagen} Grund} Grund: Dateipfad -Fehler -Datei nicht vorhandener Datei -Read -Lösung vorhanden. Charbuffer [100]; size_tread_bytes = fread (Puffer, 1, Siz

C Sprach -Multithread -Programmierung: Ein Anfängerleitfaden und Fehlerbehebung C Sprach -Multithread -Programmierung: Ein Anfängerleitfaden und Fehlerbehebung Apr 04, 2025 am 10:15 AM

C Sprachmultithreading -Programmierhandbuch: Erstellen von Threads: Verwenden Sie die Funktion pThread_create (), um Thread -ID, Eigenschaften und Threadfunktionen anzugeben. Threadsynchronisation: Verhindern Sie den Datenwettbewerb durch Mutexes, Semaphoren und bedingte Variablen. Praktischer Fall: Verwenden Sie Multi-Threading, um die Fibonacci-Nummer zu berechnen, mehrere Threads Aufgaben zuzuweisen und die Ergebnisse zu synchronisieren. Fehlerbehebung: Lösen Sie Probleme wie Programmabstürze, Thread -Stop -Antworten und Leistungs Engpässe.

Was sind die Arten von Rückgabewerten der C -Sprachfunktion? Zusammenfassung der Arten von Rückgabewerten der C -Sprachfunktion? Was sind die Arten von Rückgabewerten der C -Sprachfunktion? Zusammenfassung der Arten von Rückgabewerten der C -Sprachfunktion? Apr 03, 2025 pm 11:18 PM

Die Rückgabewerttypen von C -Sprachfunktion umfassen Int-, Float-, Doppel-, Zeichen-, Hohlraum- und Zeigertypen. INT wird verwendet, um Ganzzahlen zurückzugeben, zu schweben und doppelt zu doppelt sind, um Schwimmer zurückzugeben, und char gibt Zeichen zurück. Void bedeutet, dass die Funktion keinen Wert zurückgibt. Der Zeigertyp gibt die Speicheradresse zurück. Achten Sie darauf, Speicherverlust zu vermeiden. Eine Struktur oder ein Konsortium kann mehrere verwandte Daten zurückgeben.

See all articles