[英]How do I iterate through a pointer to a char array in C?
我是C語言的新手,在弄清楚執行此操作的確切方法時遇到了一些麻煩。
我需要遍歷一個字符串並一次將每個字母存儲一個,以便對其進行解密。
所以我正在做的是:
#1 創建一個存儲字符串的地方:
char toDecrypt[] = node->string;
#2。 啟動for循環:
for(int m=0; m< strlen(toDecrypt); ++m)
#3。 存儲字符(稍后將解密):
char i = toDecrypt[m];
那么以上方法是否有效,還是應該使用其他符號正確存儲字符?
編輯:
好的,我想我已經解決了這個問題,所以我只有一個后續問題。
如何檢查字符是否為“ \\”? 我的支票似乎無效。
當我放
toDecrypt[m] != '\';
變成if語句,那是行不通的...
將變量定義為char *toDecrypt = node->string;
如果願意,您仍然可以使用[]
表示法進行讀取/寫入。
這是錯誤的 : char toDecrypt[] = node->string;
您可以通過以下方式解決它:
char *toDecrypt = node->string;
要么
char *toDecrypt=(char*) malloc (strlen(node->string)+1);
strcpy(toDecrypt,node->string);
- 創建一個存儲字符串的地方:
您實際上已經有一個存儲字符串的地方。 node->string
存儲字符串就好了。 您可以創建一個指向它的指針:
char *toDecrypt = node->string;
或者,如果您想復制某個地方,可以制作一個數組:
char toDecrypt[enough_space_for_the_string];
// or do it dynamically with:
// char * toDecrypt = malloc(enough_space_for_the_string);
// just don't forget to free() it later
strcpy(toDecrypt, node->string);
- 如何檢查字符是否為“ \\”? 我的支票似乎無效。
反斜杠是C語言中的轉義字符,因此,如果要檢查反斜杠,則需要使用正確的轉義序列 :
toDecrypt[m] != '\\';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.