我打算修改特定字符串的每個其他字母。但爲了這個程序的目的,沒有發生這種情況。到目前爲止,我已從用戶處抓取一個字符串並將其存儲在userinput
中,並打算將其打印出來。使用scanf()函數
#include <stdio.h>
#include <string.h>
int main(void) {
char userinput[256] ="";
printf("Enter somthing to change:\n");
scanf("%s", &userinput);
printf("%s\n", userinput);
int k = 2; // This is just here to do something every time k is even
int j = strlen(userinput);
for (int i = 0; i < j; i++) {
if(k % 2 == 0) {
printf("%s", userinput[i]);
k++;
}
else {
printf("%s", userinput[i]);
k++;
}
}
}
的strlen()
但是功能上不userinput
工作。我想這是因爲strlen()
應該採用字符串的第一個字符的地址,然後迭代,直到達到一個空字符,但scanf實際上並沒有創建一個空字符。 我想不出在字符串後面加入'\0'
而不知道字符串長度的方法。
如果存儲在數組中,我將如何訪問存儲的字符序列的長度?
「'strlen()'函數在'userinput'上不起作用」以什麼方式? 'strlen(userinput)'是 - 除非輸入超出數組 - 一個有效的調用。 – 2013-04-04 14:07:41