簡體   English   中英

如何遍歷C語言中的char數組的指針?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM