按下某个键时,如何从字符数组中删除字符?

时间:2017-07-17 19:24:43

标签: c

这是我的代码:

#mobile-nav {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 60%;
  z-index: 1000;
  background-color: #199EB8;
}

#mobile-nav #logo {
  margin-left: 20px;
  margin-right: 20px;
}

#mobile-nav #logo h1 {
  color: white;
  cursor: pointer;
}

#mobile-nav #logo h1:hover {
  color: #111;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  -ms-transition: 0.3s;
  -o-transition: 0.3s;
}

#mobile-nav #logo img {
  padding: 0;
  margin: 0;
  max-height: 40px;
  border-radius: 10px;
}

#mobile-nav p {
  color: #fff;
  font-size: 24px;
  margin-top: 15px;
  margin-right: 20px;
  cursor: pointer;
}

#mobile-nav ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

#mobile-nav ul li {
  position: relative;
}

#mobile-nav ul li a {
  color: #fff;
  font-size: 16px;
  overflow: hidden;
  padding: 10px 22px 10px 15px;
  position: relative;
  text-decoration: none;
  width: 100%;
  display: block;
  outline: none;
}

#mobile-nav ul li a:hover {
  color: #111;
}

#mobile-nav ul li li {
  padding-left: 50px;
}

我尝试了很多东西。我希望能够在不使用#include <stdio.h> void main(void){ char myString[81]; int x,y,z=0; while(x<81){ system("cls"); printf("Please input a string 80 characters or less. Press space to enter your string. >>>"); for(y=0;y<x;y++){ printf("%c",myString[y]); } myString[x]=getch(); if ((int)myString[x] == 13){ myString[x]="\0"; break; } if ((int)myString[x] == 8){ /*Remove Character code here*/ x=x-1; } printf("\n"); x=x+1; z=x; } printf("\nYou typed \n"); for(y=0;y<z;y++){ printf("%c",myString[y]); } } 的情况下执行此操作,因为这是一个了解代码如何工作以及如何创建语言的实验。但是,我愿意使用函数。我已经尝试过使用一个函数,但它使用了我不理解的代码。我尝试过的其他内容包括#include <string.h>memremove()

请回答解决方案和解释,因为我还是一名学习程序员。

2 个答案:

答案 0 :(得分:0)

我认为你必须使用指针。如果您指向来自要删除的字符的索引,问题将解决。像这样定义你的数组:

char myString[] = "This is string";
char *pMyString = myString;

然后指向下一个索引,而不是要删除

for (char *pMyString  = myString; *pMyString != '\0'; pMyString++)
    *pMyString = *(pMyString+1);
*pMyString = '\0';

答案 1 :(得分:0)

我找到了一个简单的解决方案。将x=x-1更改为x=x-2