[英]Initialize string array in C and count number of letters inside
我找到了這個例子
int SizeofCharArray(char *phrase)
{
int size = 0;
int value = phrase[size];
while(value != 0)
{
value = phrase[size];
size++;
};
//printf("%i%s", size, "\n");
return size;
}
但是,如何使用純C計算字符串數組中的字母數呢? 甚至我都不明白如何初始化字符串數組?!
謝謝!
發布的代碼質量很差。 函數名稱SizeofCharArray
與描述不符, 計數字符串數組中的字母數 。
如果要返回數組中的字符數,請使用:
int SizeofCharArray(char *phrase)
{
int size = 0;
char* cp = phrase;
while( *cp != '\0')
{
size++;
cp++;
};
return size;
}
如果要返回數組中的字母數,請使用:
int isLetter(char c)
{
return (( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ));
}
int GetNumberOfLetters(char *phrase)
{
int num = 0;
char* cp = phrase;
while( *cp != '\0')
{
if ( isLetter(*cp) )
{
num++;
}
cp++;
};
return num;
}
這將計算c字符串中字母字符的數量:
#include <ctype.h>
int numberOfLetters(char *s)
{
int n = 0;
while (*s)
if (isalpha(*s++))
n++;
return n;
}
如果您想要實際的字符數,計算空格和數字之類的字符,只需使用string.h
strlen(s)
。
要找到C字符串的長度,可以使用strlen()
函數
#include<string.h>
char str[]="GJHKL";
const char *str1="hhkjj";
int len1=strlen(str)<<"\n";
int len2=strlen(str1);
C並不是特別好。我沒有給你一個char數組的大小-無法確定您是否丟失了該信息。 它提供給您的是一個以null終止的char數組的大小(又稱c字符串),它通過對字符進行計數直到找到以null終止的字符( 0
字節或'\\n'
)來實現。 實際上,您遇到的不是一個特別好的strlen實現(strlen是一個執行相同操作的標准庫函數-確定以null結尾的char數組的大小)
我相信下面的內容應該是同一件事的C-ish實現:
size_t strlen(const char *s){
const char* ptr = s;
for(; *ptr; ++ptr); //move the pointer until you get '\0'
return ptr-s; //return the difference from the original position (=string length;)
}
它返回size_t
(如果您使用的是64位計算機,則返回64位unsigned int;如果您使用的是32台計算機,則返回32位,因此只要它們適合內存,它就可以處理任意長的字符串),並且還聲明將不會修改它測量的數組( const char *s
表示您保證不會更改其指向的指針)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.