char *str[]={"we", "will", "teach", "you"};
int count=0;i,len,m;
sizeof(str)應返回值18,而它在代碼塊中返回值32。 如果它正確返回字符串的長度,向前移動,因爲知道這個字符數組存儲在連續內存位置的事實,我們可以計算在遍歷我們的數組時出現「\ 0」的次數。如何返回最後一個字符串的索引或最後一個字符串的基地址?
而這個值會給我們最後一個字符串的索引。 我嘗試以下方式:
int len=sizeof(str);
m=str[0]; //assign the base address of 1st string
for(i=0;i<len;i++)
{
if(*(m+i)=="\0") //compare the value at memory location with null
count++;
}
printf("%d", count);
如果有人能爲我提供一個洞察我的做法是否正確,或一些其他的解決辦法。 基本上,當數組中的字符串數不能被計算時,基本上要查找最後一個字符串的索引或存在的字符串的數量。
首先,在我讀你的問題之前:這是關於** C還是C++ **? – sidyll
請不要假設多個字符串存儲在連續的內存位置。 – wimh
請說明你正在努力完成什麼。 – QuestionC