我打算修改特定字符串的每个其他字母。但为了这个程序的目的,没有发生这种情况。到目前为止,我已从用户处抓取一个字符串并将其存储在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