程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話上鉤算字符串長度與朋分字符串的辦法

C說話上鉤算字符串長度與朋分字符串的辦法

編輯:關於C++

C說話上鉤算字符串長度與朋分字符串的辦法。本站提示廣大學習愛好者:(C說話上鉤算字符串長度與朋分字符串的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話上鉤算字符串長度與朋分字符串的辦法正文


C說話strlen()函數:前往字符串的長度
頭文件:

 #include <string.h>

strlen()函數用來盤算字符串的長度,其原型為:

  unsigned int strlen (char *s);

【參數解釋】s為指定的字符串。

strlen()用來盤算指定的字符串s 的長度,不包含停止字符"\0"。

【前往值】前往字符串s 的字符數。

留意一下字符數組,例如

  char str[100] = "http://see.xidian.edu.cn/cpp/u/biaozhunku/";

界說了一個年夜小為100的字符數組,然則唯一開端的11個字符被初始化了,剩下的都是0,所以 sizeof(str) 等於100,strlen(str) 等於11。

假如字符的個數等於字符數組的年夜小,那末strlen()的前往值就沒法肯定了,例如

  char str[6] = "abcxyz";

strlen(str)的前往值將是不肯定的。由於str的開頭不是0,strlen()會持續向後檢索,直到碰到'\0',而這些區域的內容是不肯定的。

留意:strlen() 函數盤算的是字符串的現實長度,碰到第一個'\0'停止。假如你只界說沒有給它賦初值,這個成果是不定的,它會從首地址一向找下去,直到碰到'\0'停滯。而sizeof前往的是變量聲明後所占的內存數,不是現實長度,另外sizeof不是函數,僅僅是一個操作符,strlen()是函數。

【函數示例】獲得字符串 的長度。

#include<stdio.h>
#include<string.h>
int main()
{
  char *str1 = "http://see.xidian.edu.cn/cpp/u/shipin/";
  char str2[100] = "http://see.xidian.edu.cn/cpp/u/shipin_liming/";
  char str3[5] = "12345";
  printf("strlen(str1)=%d, sizeof(str1)=%d\n", strlen(str1), sizeof(str1));
  printf("strlen(str2)=%d, sizeof(str2)=%d\n", strlen(str2), sizeof(str2));
  printf("strlen(str3)=%d, sizeof(str3)=%d\n", strlen(str3), sizeof(str3));
  return 0;
}

運轉成果:

strlen(str1)=38, sizeof(str1)=4
strlen(str1)=45, sizeof(str1)=100
strlen(str1)=53, sizeof(str1)=5

下面的運轉成果,strlen(str1)=53明顯纰謬,53是沒成心義的。

C說話strtok()函數:字符串朋分
頭文件:

#include <string.h>

界說函數:

char * strtok(char *s, const char *delim);

函數解釋:strtok()用來將字符串朋分成一個個片斷。參數s 指向欲朋分的字符串,參數delim 則為朋分字符串,當strtok()在參數s 的字符串中發明到參數delim 的朋分字符時則會將該字符改成\0 字符。在第一次挪用時,strtok()必須賜與參數s 字符串,往後的挪用則將參數s 設置成NULL。每次挪用勝利則前往下一個朋分後的字符串指針。

前往值:前往下一個朋分後的字符串指針,假如已無從朋分則前往NULL。

典范

#include <string.h>
main(){
  char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
  char *delim = "-: ";
  char *p;
  printf("%s ", strtok(s, delim));
  while((p = strtok(NULL, delim)))
    printf("%s ", p);
    printf("\n");
}

履行成果:

ab cd ef;gh i jkl;mnop;qrs tu vwx y;z   //-與:字符曾經被\0 字符代替


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved