我打算修改一个特定字符串的每个其他字母。但就本计划而言,这一切都没有发生。到目前为止,我已经从用户那里获取了一个字符串并将其存储userinput
并打算打印它。
#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'
在字符串之后添加的方法。
如果存储在数组中,我将如何访问存储的字符序列的长度?