Anmerkungen zur Sprache C - diese Dinge zwischen Zeichenfolgen

Inhalt

#strlen

#strcpy und strncpy

##strcpy

##strcnpy

#strcat und strncat

## strcat

 ##strncat

#strcmp und strncmp

##strcmp

##strncmp

#Thema


#strlen

Die strlen-Funktion muss vor ihrer Verwendung eine Header-Datei hinzufügen: #include<string.h>

Funktionsdeklaration: size_tstrlen(const char *s);

Funktion: Holen Sie sich die Länge der Zeichenfolge ohne '\0'.

Rückgabewert: Gibt die Anzahl der Zeichen im String zurück (ein Leerzeichen wird auch als Zeichen gezählt)

Beispiel:

#inclue<stdio.h>
#include<string.h>
int main()
{
	char str[]="hello world";
	int len=strlen(str);
	printf("%d",len);//len=11
}

#strcpy und strncpy

##strcpy

Funktionsdeklaration: char *strcpy(char *dest,const char *src);

Funktionsbeschreibung: Kopieren Sie die Zeichenfolge, auf die src zeigt, in den Speicher, auf den der Zielzeiger zeigt, und '\0' wird auch dorthin kopiert.

Rückgabewert der Funktion: die Adresse des Zielspeichers.

※※Hinweis: Wenn Sie diese Funktion verwenden, müssen Sie sicherstellen, dass der Speicherplatz, auf den dest zeigt, groß genug ist, da es sonst zu einer Speicherverschmutzung kommt.

Beispiel:

#include<stdio.h>
#include<string.h> 
int main()
{
	char str[]="hello world";
	char s[]="hello earth";
	strcpy(str,s);
	printf("%s",str);//打印结果是hello earth
} 

##strcnpy

Funktionsdeklaration: char *strncpy(char *dest,const char *src,size_tn);

Funktionsbeschreibung: Kopiere die ersten n Bytes der Zeichenkette, auf die src zeigt, in den Speicher, auf den dest zeigt.

Rückgabewert: die erste Adresse des Zielspeichers.

※※Hinweis: 1.strncpy kopiert '\0' nicht

                 2. Wenn n größer ist als die Anzahl der Zeichen in der Zeichenfolge, auf die src zeigt, dann fülle n-strlen(src) '\0' nach dest

Beispiel:

#include<stdio.h>
#include<string.h> 
int main()
{
	char str[]="hello world";
	char s[]="hello earth";
	strncpy(str,s,8);
	printf("%s",str);
} 

#strcat und strncat

## strcat

Funktionsdeklaration: char *strcat(char *dest,const char *src);

Funktion: Die strcat-Funktion hängt die src-Zeichenfolge an das Ende der Zeichenfolge an, auf die dest zeigt, und fügt beim Anhängen '\0' an.

※※Hinweis: Stellen Sie sicher, dass der Speicherplatz, auf den dest zeigt, groß genug ist.

Beispiel:

#include<stdio.h>
#include<string.h> 
int main()
{
	char str[100]="hello world";
	char s[]="hello";
	strcat(str,s);
	printf("%s",str);
} 

 ##strncat

Funktionsdeklaration: char *strncat(char *dest,const char *src,size_tn);

Hängt die ersten n Zeichen der Zeichenfolge, auf die src zeigt, an das Ende der Zeichenfolge an, auf die dest zeigt.

※※Hinweis: Wenn n größer als die Anzahl der Zeichen in src ist, wird nur die src-Zeichenfolge an die Zeichenfolge angehängt, auf die dest zeigt, und '\0' wird beim Anhängen hinzugefügt

Beispiel:

#include<stdio.h>
#include<string.h> 
int main()
{
	char str[100]="hello world";
	char s[]="hello";
	strncat(str,s,4);
	printf("%s",str);
} 

 

#strcmp und strncmp

##strcmp

Funktionsdeklaration: int strcmp(const char *s1,const char *s2);

Funktionsbeschreibung: Vergleiche die Größe der Strings, auf die s1 und s2 zeigen.

Vergleichsmethode: Vergleichen Sie den ASCII-Code Zeichen für Zeichen und kehren Sie zurück, sobald die Größe verglichen wurde.

Rückgabewert:

Gibt 1 zurück, wenn die Zeichenfolge, auf die s1 zeigt, größer ist als die Zeichenfolge, auf die s2 zeigt

Wenn die Zeichenfolge, auf die s1 zeigt, kleiner ist als die Zeichenfolge, auf die s2 zeigt, wird -1 zurückgegeben

Gibt 0 zurück, wenn gleich

Beispiel:

#include<stdio.h>
#include<string.h> 
int main()
{
	char str1[]="hello world";
	char str2[]="hello world";
	int ret;
	ret=strcmp(str1,str2);
	printf("%d",ret);//ret==0
} 

##strncmp

Funktionsdeklaration: int strncmp(const char *s1,const char *s2,size_t n);

Funktionsbeschreibung: Vergleiche die ersten n Zeichen in den Strings, auf die s1 und s2 zeigen

Beispiel:

#include<stdio.h>
#include<string.h> 
int main()
{
	char s1[]="hello world";
	char s2[]="hello earth";
	int ret;
	ret=strncmp(s1,s2,5);
	if(ret>0)
		printf("s1的前五个字符大于s2的前五个字符\n"); 
	else if(ret<0)
		printf("s1的前五个字符小于s2的前五个字符\n"); 
	else
		printf("s1的前五个字符等于s2的前五个字符\n"); 
} 

Ich habe vorerst so viele Wissenspunkte über Saiten aussortiert, und es gibt noch viele Stellen, die noch nicht behandelt wurden. Ich hoffe, jeder kann seine Meinung äußern. Lassen Sie uns als nächstes ein interessanteres Thema behandeln.

#Thema

n Zeilen ID-Nummern eingeben, nach Alter sortieren (groß nach klein) und ausgeben.

#include<stdio.h>
#include<string.h>

int main()
{
	char a[100][100],birth[100][100],s[100];
	int n,i,j;scanf("%d",&n);
	gets(s);
	for(i=0;i<n;i++)
	{
		gets(a[i]);
		strncpy(birth[i],a[i]+6,8);
	}
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(strcmp(a[j],a[i])<0)
			{
				strcpy(s,a[j]);
				strcpy(a[j],a[i]);
				strcpy(a[i],s);
			}
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%s\n",a[i]);
	}
 } 

Dies ist das Ende dieses Artikels, ich danke Ihnen allen!

Supongo que te gusta

Origin blog.csdn.net/qq_61139806/article/details/124078071
Recomendado
Clasificación