當前位置:首頁 » 編程語言 » c語言strrchr
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言strrchr

發布時間: 2022-03-12 18:42:34

『壹』 c語言把單詞順序倒置 比如see you later 編程later you see 我這個怎麼不行

你的思路不對啊,這樣的話太繁瑣的過程了,你先把字元串全部逆序,然後遇到空格再把一個單詞逆序,雖然可以達到目的,但是明顯,重復勞動了呀。

建議思路:
一個字元串,直接根據空格、逗號、句號直接對字元串進行切割。切割成單個單個的單詞,比如單詞A,B,C。如果從字元串的尾部開始切割,那麼直接將這些單詞保存到一個字元串里就行了。
函數建議:strrchr()函數

『貳』 c語言strrchr求解

pch=strrchr(szTagPrefix,'.');//從後邊查找.
if(pch==NULL){//沒找到,輸出,返回
printf("#093:BST_TopfieldOpen()-NoTagConnection->ABORT ");
return(-93);
}else{
pch++;//找到了,指針向後移1
*pch='';//原地截斷,相當於原字元串最後一個.後的字元拋棄

『叄』 c語言 str函數

也許你迷惑的地方:gets(數組名):假如字元數組的長度為9,當從鍵盤輸入字元串時,gets函數最多隻能接收8個字元,因為系統要在字元串末尾加上'\0'。當輸出字元串時,遇見'\0'就停止輸出,而strcpy在使用時要連'\0'一起復制。

『肆』 求C語言全總字元串函數

函數名: stpcpy
功 能: 拷貝一個字元串到另一個
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%sn", string);
return 0;
}

函數名: strcat
功 能: 字元串拼接函數
用 法: char *strcat(char *destin, char *source);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%sn", destination);
return 0;
}

函數名: strchr
功 能: 在一個串中查找給定字元的第一個匹配之處
用 法: char *strchr(char *str, char c);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[15];
char *ptr, c = 'r';
strcpy(string, "This is a string");
ptr = strchr(string, c);
if (ptr)
printf("The character %c is at position: %dn", c, ptr-string);
else
printf("The character was not foundn");
return 0;
}

函數名: strcmp
功 能: 串比較
用 法: int strcmp(char *str1, char *str2);
看Asic碼,str1>str2,返回值 > 0;兩串相等,返回0
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
else
printf("buffer 2 is less than buffer 1n");
ptr = strcmp(buf2, buf3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3n");
else
printf("buffer 2 is less than buffer 3n");
return 0;
}

函數名: strncmpi
功 能: 將一個串中的一部分與另一個串比較, 不管大小寫
用 法: int strncmpi(char *str1, char *str2, unsigned maxlen);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = strcmpi(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}

函數名: strcpy
功 能: 串拷貝
用 法: char *strcpy(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strcpy(string, str1);
printf("%sn", string);
return 0;
}

函數名: strcspn
功 能: 在串中查找第一個給定字元集內容的段
用 法: int strcspn(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *string1 = "1234567890";
char *string2 = "747DC8";
int length;
length = strcspn(string1, string2);
printf("Character where strings intersect is at position %dn", length);
return 0;
}

函數名: strp
功 能: 將串拷貝到新建的位置處
用 法: char *strp(char *str);
程序例:
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *p_str, *string = "abcde";
p_str = strp(string);
printf("%sn", p_str);
free(p_str);
return 0;
}

函數名: stricmp
功 能: 以大小寫不敏感方式比較兩個串
用 法: int stricmp(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = stricmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}

函數名: strerror
功 能: 返回指向錯誤信息字元串的指針
用 法: char *strerror(int errnum);
程序例:
#include <stdio.h>
#include <errno.h>
int main(void)
{
char *buffer;
buffer = strerror(errno);
printf("Error: %sn", buffer);
return 0;
}

函數名: strcmpi
功 能: 將一個串與另一個比較, 不管大小寫
用 法: int strcmpi(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = strcmpi(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}

函數名: strncmp
功 能: 串比較
用 法: int strncmp(char *str1, char *str2, int maxlen);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
int ptr;
ptr = strncmp(buf2,buf1,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
else
printf("buffer 2 is less than buffer 1n");
ptr = strncmp(buf2,buf3,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3n");
else
printf("buffer 2 is less than buffer 3n");
return(0);
}

函數名: strncmpi
功 能: 把串中的一部分與另一串中的一部分比較, 不管大小寫
用 法: int strncmpi(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBBccc", *buf2 = "bbbccc";
int ptr;
ptr = strncmpi(buf2,buf1,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}

函數名: strncpy
功 能: 串拷貝
用 法: char *strncpy(char *destin, char *source, int maxlen);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strncpy(string, str1, 3);
string[3] = '';
printf("%sn", string);
return 0;
}

函數名: strnicmp
功 能: 不注重大小寫地比較兩個串
用 法: int strnicmp(char *str1, char *str2, unsigned maxlen);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBBccc", *buf2 = "bbbccc";
int ptr;
ptr = strnicmp(buf2, buf1, 3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}

函數名: strnset
功 能: 將一個串中的所有字元都設為指定字元
用 法: char *strnset(char *str, char ch, unsigned n);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz";
char letter = 'x';
printf("string before strnset: %sn", string);
strnset(string, letter, 13);
printf("string after strnset: %sn", string);
return 0;
}

函數名: strpbrk
功 能: 在串中查找給定字元集中的字元
用 法: char *strpbrk(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string1 = "abcdefghijklmnopqrstuvwxyz";
char *string2 = "onm";
char *ptr;
ptr = strpbrk(string1, string2);
if (ptr)
printf("strpbrk found first character: %cn", *ptr);
else
printf("strpbrk didn't find character in setn");
return 0;
}

函數名: strrchr
功 能: 在串中查找指定字元的最後一個出現
用 法: char *strrchr(char *str, char c);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[15];
char *ptr, c = 'r';
strcpy(string, "This is a string");
ptr = strrchr(string, c);
if (ptr)
printf("The character %c is at position: %dn", c, ptr-string);
else
printf("The character was not foundn");
return 0;
}

函數名: strrev
功 能: 串倒轉
用 法: char *strrev(char *str);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *forward = "string";
printf("Before strrev(): %sn", forward);
strrev(forward);
printf("After strrev(): %sn", forward);
return 0;
}

函數名: strset
功 能: 將一個串中的所有字元都設為指定字元
用 法: char *strset(char *str, char c);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10] = "123456789";
char symbol = 'c';
printf("Before strset(): %sn", string);
strset(string, symbol);
printf("After strset(): %sn", string);
return 0;
}

函數名: strspn
功 能: 在串中查找指定字元集的子集的第一次出現
用 法: int strspn(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *string1 = "1234567890";
char *string2 = "123DC8";
int length;
length = strspn(string1, string2);
printf("Character where strings differ is at position %dn", length);
return 0;
}

函數名: strstr
功 能: 在串中查找指定字元串的第一次出現
用 法: char *strstr(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %sn", ptr);
return 0;
}

函數名: strtod
功 能: 將字元串轉換為double型值
用 法: double strtod(char *str, char **endptr);
程序例:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char input[80], *endptr;
double value;
printf("Enter a floating point number:");
gets(input);
value = strtod(input, &endptr);
printf("The string is %s the number is %lfn", input, value);
return 0;
}

函數名: strtok
功 能: 查找由在第二個串中指定的分界符分隔開的單詞
用 法: char *strtok(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char input[16] = "abc,d";
char *p;
/* strtok places a NULL terminator
in front of the token, if found */
p = strtok(input, ",");
if (p) printf("%sn", p);
/* A second call to strtok using a NULL
as the first parameter returns a pointer
to the character following the token */
p = strtok(NULL, ",");
if (p) printf("%sn", p);
return 0;
}

函數名: strtol
功 能: 將串轉換為長整數
用 法: long strtol(char *str, char **endptr, int base);
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *string = "87654321", *endptr;
long lnumber;
/* strtol converts string to long integer */
lnumber = strtol(string, &endptr, 10);
printf("string = %s long = %ldn", string, lnumber);
return 0;
}

函數名: strupr
功 能: 將串中的小寫字母轉換為大寫字母
用 法: char *strupr(char *str);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%sn", ptr);
return 0;
}

函數名: swab
功 能: 交換位元組
用 法: void swab (char *from, char *to, int nbytes);
程序例:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char source[15] = "rFna koBlrna d";
char target[15];
int main(void)
{
swab(source, target, strlen(source));
printf("This is target: %sn", target);
return 0;
}

PS:isalpha()是字元函數,不是字元串函數,

isalpha

原型:extern int isalpha(int c);

用法:#include <ctype.h>

功能:判斷字元c是否為英文字母

說明:當c為英文字母a-z或A-Z時,返回非零值,否則返回零。

舉例:

// isalpha.c

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

main()
{
int c;

clrscr(); // clear screen
printf("Press a key");
for(;;)
{
c=getchar();
clrscr();
printf("%c: %s letter",c,isalpha(c)?"is":"not");
}
return 0; // just to avoid warnings by compiler
}

更多函數請看這里
http://vip.6to23.com/tenax/clib/clib.html

『伍』 這個C語言程序誰能解釋下

這個函數的功能就是將輸入的字元串中的每個以空格分割的序列倒序輸出。

『陸』 C語言怎麼用strrchr求實數部分的小數部分

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

intmain(intargc,char*argv[])
{
chara[32]={0};
floatb=35.86;
char*c=NULL;

//float轉成string類型
sprintf(a,"%.2f",b);

//處理string類型的數,點號後面就是小數
c=strchr(a,'.');
if(c)
{
printf("小數部分:%s ",c+1);
}

return0;
}

『柒』 C語言問題,請指導下!

首先得知道函數char *strrchr(const char *s, int c);的作用是返回字元c在字元串s中從右往左數,第一次出現的位置的指針。即返回的指針指向這個字元c在字元串s中第一次出現的位置(按從右往左數)。

因此strrchr(SavePath,'\\')會返回一個指針,指向字元串"D:\工程2019\Allimg"中字元\在右邊第一次出現的位置,即pChar指向9\A中的\。而*(pChar+1)=0;即令9\A中的字元A變為'\0'(字元串結束字元),作用是令字元串"D:\工程2019\Allimg"變為字元串"D:\工程2019\",即令SavePath保存原目錄D:\工程2019\Allimg的上級目錄D:\工程2019\。

『捌』 C語言中index怎麼用

C語言index()函數作用:查找字元串並返回首次出現的位置。

相關函數:rindex, srechr, strrchr

頭文件:#include <string.h>

定義函數:char * index(const char *s, int c);

函數說明:index()用來找出參數s 字元串中第一個出現的參數c 地址,然後將該字元出現的地址返回。字元串結束字元(NULL)也視為字元串一部分。

返回值:如果找到指定的字元則返回該字元所在地址,否則返回0。

參考示例如下:

#include<string.h>
main(){
char*s="";
char*p;
p=index(s,'5');
printf("%s ",p);
}

執行結果如下:
5.68E+25

『玖』 C語言字元串

判斷空格字元,只取空格符後的字元串
void getstr(char *buf)
{
char *p=buf;
char *ps=NULL;
for(p;p!='\0';p++)
{
if(*p==32)
{
ps=p+1;
break;
}
}
printf("%s\r\n",ps);
}

『拾』 用C語言如何從路徑名中分離文件名

聲明一個足夠長的名為fn的char型數組,調用庫函數strrchr在含路徑的全文件名中找到文件名前的'',將其後的文件名拷貝到fn中即可。舉例代碼如下:

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"string.h"
intmain(void){
charfn[30],*p;
charpathname[80]="e:\1\2\abc.dat";
//上句假設以某種方式獲得的全文件名在pathname中,"..."中只是舉例
strcpy(fn,(p=strrchr(pathname,'\'))?p+1:pathname);
//上句函數第2實參這樣寫以防止文件在當前目錄下時因p=NULL而出錯
printf("%s ",fn);//打出來看看
return0;
}