c-在排除用户输入字符的同时,很难将字符数组字符分配给另一个字符数组



我对C语言和编程还是个新手。

作为一项家庭作业,我需要制作一个程序,让用户输入一个单词,然后输入一个字母,这个程序打印出单词中这些字母的位置,然后打印出没有这些字母的单词(这就是我现在正在努力的地方(。

这是现在的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
char word[20];
printf("Enter a word: ");
scanf("%s", word);
int length = strlen(word);
char letter[1];
printf("Enter a letter: ");
scanf("%s", letter);
char newWord[20];
for(int i = 0; i < length; i++){
if(word[i] != letter[0]){
newWord[i] = word[i];
} else
if(word[i] == letter[0]){
printf("%s is at %dn", letter, i+1);
//newWord[i] = word[i+1];  // I've commented this out because I was testing the first part 
// of the loop which is assigning those letters to the variable
// and yet still can't think of an idea that skips that letter 
// I want it to skip.
}
}
printf("%s", newWord);
}

基本上,我从上次打印的printf("%s", newWord);中得到的并不是空白。但我想让它做的是,例如;worlrdr";以及";r〃;因此它打印";世界";。即使是一些基本的东西,比如newWord[i] = 'z';在:

for(int i = 0; i < length; i++){
if(word[i] != letter[0]){
newWord[i] = word[i];
}

打印出";zz"zz(几个奇怪的角色(";。我真的很困惑,如果有人能给我解释一下,我将不胜感激。

提前感谢!

我已经压碎(删除(了字符串中找到的所有字母,并将字符从找到的字母的长度转移到索引

这个代码可以帮助你:

#include <stdio.h>
#include <string.h>
int main()
{
char word[20];
printf("Enter a word: ");
scanf(" %s", word);
int length = strlen(word);
char letter;
printf("Enter a letter: ");
scanf(" %c", &letter);

for(int i=0;i<length;i++)
{
if(word[i]== letter )
{
printf("%c is at %dn", letter, i+1);
}
}
//here is the for loop of crushed
for(int i=0;i<length;i++)
{
if(word[i]== letter )
{
for(int j=i+1;j<length;j++)
{
word[j-1]=word[j];
}
length--;
i--;
}
}
printf("nDisplay of the string :nn");
for(int i=0;i<length;i++)
{
printf("%c", word[i]);
}
printf("n");
}

示例:

输入字符串=";MLMAZELMMLLAMMMMAR";

字母=M'

输出字符串:";LAZELLLAAR";

或者,你可以使用第二个字符串来复制单词1到单词2的字母,除了与给定字母相同的字符

#include <stdio.h>
#include <string.h>
int main()
{
char word[20];
printf("Enter a word: ");
scanf(" %s", word);
int length = strlen(word);
char letter;
printf("Enter a letter: ");
scanf(" %c", &letter);

for(int i=0;i<length;i++)
{
if(word[i]== letter )
{
printf("%c is at %dn", letter, i+1);
}
}
char word2[20];
int j=0;

for(int i=0;i<length;i++)
{
if(word[i]!= letter )
{
word2[j]=word[i];
j++;
}
}

printf("nDisplay of the new string(word 2) :nn");
for(int i=0;i<j;i++)
{
printf("%c", word2[i]);
}
printf("n");
}

示例:

输入字符串(字1(="0";MLMAZELMMLLAMMMMAR";

字母=M'

输出字符串(字2(:";LAZELLLAAR";

相关内容

  • 没有找到相关文章

最新更新