我遇到問題。這個函數需要清除任何非字母字符串,同時降低所有的字母字符。使用指針,p_fast
檢查字符串中的字符是否爲isalpha
;如果是,則該字符被存儲到p_slow
中。在整個字符串中完成此操作後,將添加一個\0
字符以完成字符串。在此之後,我需要將字符串中的第一個字母大小寫爲剛剛清理過的小寫字母。在字符串中首字母大寫c
/**********************************************************************/
/* Clean up customer names */
/**********************************************************************/
void clean_names(int quantity,
struct customer *p_customer_records_start)
{
struct customer *p_customer;
char *p_fast = p_customer_records_start->customer_name,
*p_slow = p_customer_records_start->customer_name;
for(p_customer = p_customer_records_start;
(p_customer-p_customer_records_start) < quantity; p_customer++)
{
p_fast = p_customer->customer_name;
p_slow = p_customer->customer_name;
while (*p_fast != END_OF_STRING)
{
if(isalpha(*p_fast))
*p_slow++ = tolower(*p_fast);
p_fast++;
}
*p_slow = END_OF_STRING;
}
return;
}
我不知道如何回到字符串的開頭。我在互聯網上找不到任何東西。如果有人能夠幫助,那會很棒!如果您需要更多信息,只需詢問。
該字符串的開頭仍然在'p_customer-> customer_name' – Kninnug
@Kninnug我意識到這一點,但'toupper(* p_customer-> customer_name);'沒有效果。還有其他建議嗎? –
你會想''p_customer-> customer_name = toupper(* p_customer-> customer_name;'即分配字母。 – Kninnug