[英]How can I add an int to a char in C
我正在嘗試為 char 數組中的每個 char 添加一個 int ,但我不知道該怎么做。
void Offset(char sirDeCaractere[100], int x)
{
int i = 0;
while (sirDeCaractere[i] != '\0')
{
sirDeCaractere[i] += x;
i++;
}
printf("%c", sirDeCaractere[i]);
}
我一直在嘗試做這樣的事情一段時間,但我無法弄清楚。 像這樣寫我不認為它會由於指針運算而起作用,但我沒有其他想法。
例如:
Input:
sirDeCaractere = cuvant
x = 5
Output:
hz{fsy
我應該如何編輯我的代碼以實現所需的 output?
現在我的程序正在崩潰(正如我所說,因為 sirDeCaractere[i] += x; 是指針算術)。
謝謝。
你要這個:
#include <stdio.h>
void Offset(char sirDeCaractere[100], int x)
{
int i = 0;
while (sirDeCaractere[i] != '\0')
{
sirDeCaractere[i] += x;
i++;
}
// remove this line, it makes no sense printf("%c", sirDeCaractere[i]);
}
int main(void)
{
char test[] = "ABCD";
Offset(test, 1);
printf("%s\n", test);
}
Output:
BCDE
我猜你沒有顯示的代碼是這樣的:
...
char *test = "ABCD";
Offset(test, 1);
...
或者
Offset("ABCD", 1);
這將在大多數平台上崩潰。 閱讀此表單更多信息: 為什么我在寫入使用字符串文字初始化的“char *s”而不是“char s[]”時會出現分段錯誤?
獎金:
請注意,下面的[100]
是無用的:
void Offset(char sirDeCaractere[100], int x)
你可以寫:
void Offset(char sirDeCaractere[], int x)
或者:
void Offset(char *sirDeCaractere, int x)
做同樣的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.