Я некоторое время играл с этой программой, и я не могу понять, что мне не хватает.Печать нулевого символа при вводе нечетного количества символов
В самом низу моего кода у меня есть функция, которая заменяет каждое другое слово «-». Моя проблема заключается в том, что когда я ввожу нечетное числовое слово, например «Кот», «собака», «гамбургер», он поместит «-» в том, что я считаю нулевой символьной позицией, хотя я не смог развенчать его.
Благодарим за помощь!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void replace(char w[]);
int main()
{
char w[100], x[100], y[100];
int z = 0;
printf("Player 1, please enter the secret word: ");
fgets(x,100,stdin);
// system("clear");
while(strcmp(x,y) != 0)
{
strcpy(w,x);
// printf("\nLength of String : %d", strlen(w)-1);
replace(w);
printf("Player 2, the word is %s\n",w);
printf("Player 2, please guess the word: ");
fgets(y,100,stdin);
z++;
if(strcmp(x,y) != 0)
{
printf("Wrong. Try again.\n");
}
else
{
//system("clear");
printf("Correct!\n");
printf("It took you %d attempt(s).\n",z);
switch (z)
{
case 1 :
case 2 :
printf("A. Awesome work!");
{break;}
case 3 :
case 4 :
printf("B. Best, that was!");
{break;}
case 5 :
case 6 :
printf("C. Concentrate next time!");
{break;}
case 7 :
printf("D. Don't quit your day job.");
{break;}
default :
printf("F. Failure.");
{break;}
}
}
}
getch();
}
void replace(char w[])
{
int a;
a = 0;
while (w[a] != '\0')
{
if (a % 2 != 0)
{
w[a] = '-';
a++;
}
if (w[a] != '\0')
{
a++;
}
else
{
break;
}
}
}
Лучше, если вы дадите пример ввода и вывода, которые ожидаются и получаются в настоящее время. – Chinna
, если 'a% 2! = 0', а не конец строки, а приращение на 2 - это то, что вы хотите? – moeCake
@moeCake Это правильно. Я хочу увеличить «a» на два. –