可以通過輸出\b來實現。 \b 是C語言的轉義字元之一,其含義為退格(BS),ascii碼值為8。 當輸出\b時,其顯示效果為游標退後一格。 需要注意的是,只是游標退後,並不會刪除字元,所以要達到真正的刪除效果,還需要再輸出一個字元。如果在後退後系統不再輸出其它字元,那麼需要手動輸出一個空白字元來達到刪除的作用。 比如 printf("\b "); 即在\b後馬上輸出一個空格,原本的最後一個字元就會被空格覆蓋,實現刪除的效果。 另外一個需要注意的點為,\b只能夠退格,不能推行,所以如果最後一個字元為換行符,那麼是無法實現刪除最後一個字元的效果的。
『貳』 c語言中怎麼把一個數組清空
1. 在斗櫻C語言中如何把數組清空
有兩種方法可以實現。
為方便說明,定義整型數組a,並實現將a清空。
int a[4] = {1,2,3,4};
1、通過數組遍歷,逐個賦值為0。
定義循環變數int i;
for(i = 0; i < 4; i ++)
a[i]=0;
該程序功能為遍歷數組a,逐個將元素賦值為0,實現清空效果。
2、藉助內存賦值函數memset,整體賦值為0。
void *memset(void *dst, int value, size_t size);
這個函數的功能為將src上,大小為size位元組的數據賦值為value。需要注意的是,該函數賦值是以位元組為單位的。
調用該空純叢函數時需要引用頭文件string.h,即
#include <string.h>
清空數組的代碼為
memset(a,0,sizeof(a));
2. C語言如何從數組中刪除一個指定元素
del函數的作用是刪除數組a中的指定元素x,n為數組a的元素個數。函數的返回值,為刪除元素後的有效元素個數(數組中可能有重復元素)。
函數的原型為:
int del (int a[10],int n,int x)
(1)請實現這個函數,並完成測試。
[參考解答]
[cpp] view plain
#include
int del(int a[],int n, int x);
int main( )
{
int a[20]= {86,76,62,58,77,85,92,80,96,88,77,67,80,68,78,87,64,59,61,76};
int i, n;
n = del(a, 20, 77);
printf("剩餘褲頌 %d 個:\n", n);
for(i=0; iprintf("%d ", a[i]);
printf("\n");
return 0;
}
int del(int a[],int n, int x) 刪除長度為n的a數組中值為x的元素
{
int p=0, q=0; 用p和q兩個變數
while (q{
if(a[q]!=x) 只有當元素值不等於x才往p標識的位置上「搬」
{
a[p]=a[q];
p++;
}
q++;
} 最後的效果,等於x的元素都沒有「搬」過來,它們被「覆蓋」了,也即被刪除了
return p; p代表的,就是刪除後的元素個數
}
(2)如果在函數調用時,要求數組中的元素呈升序排列呢?[參考解答]
思路:例如在下面main函數中的測試,刪除77時,分三個階段:①先找到77;②跨過若干個77後,找到了80;③從80開始,將數據逐個地搬到前面合適的位置(「覆蓋」了77及隨後的位置)。
[cpp] view plain
#include
int del(int a[],int n, int x);
int main( )
{
int a[20]= {58, 59, 61, 62, 64, 67, 68, 76, 77, 77, 77, 80, 80, 85, 86, 87, 88, 88, 92, 96};
int i, n;
n = del(a, 20, 77);
printf("剩餘 %d 個:\n", n);
for(i=0; iprintf("%d ", a[i]);
printf("\n");
return 0;
}
int del(int a[],int n, int x) 刪除長度為n的a數組中值為x的元素
{
int p=0, q;
while (a[p]p++;
q=p; 階段②:p將標記住這個待刪除的位置
while(a[q]==x && qq++;
while(qa[p++]=a[q++]; 階段③:將要保留的元素,直接「覆蓋」到p標記住的位置,逐個賦值,結果就是將等於x的元素刪除了
return p; p代表的,就是刪除後的元素個數
}
3. C語言中怎麼刪除數組中的一個元素
方法: 刪除就是將其下標所在位置的中的內容置為空(也就是0),然後從此位置開始,後面的內容前移,再把最後那個位置的置為空(就是0)。
前移無非就是 類似 arr[ i - 1] = arr[ i ] 這個意思。 當可以確認數組中存放的都是整數,你可以將這個元素置為-1表示刪除。
增加就是先檢查你的數組中有沒有-1的元素,如果有,就設置為你的值。如果全部都滿了,就開一個更大的數組,把數據拷貝過去。
把相應位後面的一次前移一位,就是實現了刪除操作,可以用個for循環就可以實現了。 數組的內存分配:變數在內存中是從大到小定址的(內存中以位元組為單位),比如00000000 00000000 00000000 00001010在內存中,00001010的地址是最小的;而數組則有些不同,數組的元素自然的從上往下排列 存儲,整個數組的地址為首元素的地址。
(但是組成元素的位元組還是按從大到小)。 。
4. C語言數組清空的幾種方法比較
任何類型的數組都可以,實際上memset函數是對某一個地址以及該地址之後的一串空間進行賦值操作,只要是地址值,都可以被賦值。
1、memset是計算機中C/C++語言函數。將s所指向的某一塊內存中的前n個 位元組的內容全部設置為ch指定的ASCII值, 第二個值為指定的內存地址,塊的大小由第三個參數指定,這個函數通常為新申請的內存做初始化工作, 其返回值為指向s的指針。
2、函數介紹:void *memset(void *s, int ch, size_t n);
函數解釋:將s中前n個位元組 (typedef unsigned int size_t )用 ch 替換並返回 s 。
memset:作用是在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法。
5. c語言:如何在一個排序好的數組中刪除一個數
辦法不至一個,比較直觀的是找到要刪除的元素後,將它後面的元素依次向前移動(拷貝)一位。舉例代碼如下:
#include "stdafx.h"If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
int a[10]={1,2,3,4,5,6,7,8,9,10},i,j,x;
printf("Enter a number to delete。\n");
scanf("%d",&x);輸入要刪除的元素值
for(i=0;i<10;i++)找要刪除的元素
if(a[i]==x)
break;找到後跳出循環
if(i<10){
for(j=i+1;j<10;a[i++]=a[j++]);找到後後續元素依次向前移動一位
j=9;因為刪除了一位,長度變為9
}
else{
printf("Not find %d。\n",x);
j=10;沒有找到,長度仍為10
}
for(i=0;i<j;printf("%d ",a[i++]));結果輸出來看看
printf("\n");
return 0;
}
『叄』 c語言。一維數組。數據刪除,刪除指定位置的數據
#include<stdio.h>
main()
{
inti,j,x,a[]={12,5,4,23,8,18,41,34,15,9};
printf("輸入要刪除的數:");
scanf("%d",&x);
for(i=0;i<10;++i)
{
if(x==a[i])
{
for(j=i;j<9;++j)//刪除指定的數
a[j]=a[j+1];
a[9]=0;
break;
}
}
if(i==10)
printf("沒有找到指定的數");
else
for(i=0;i<9;++i)//輸出刪除後的數組
printf("%d",a[i]);
}
『肆』 C語言中如何刪除已經輸出的一個字元
文本模式下指定位置輸出
用""覆蓋掉
gotoxy(1,1);
printf("1230123");
gotoxy(7,1);
printf("");
例:
#include<stdio.h>
intmain(void)
{
printf("123");
printf("%c",32);/*注意這里*/
return0;
}
(4)怎麼刪除輸出的數據c語言擴展閱讀
C語言刪除字元串前面連續*號
voidfun(char*a)
{
inti=0,j=0;
while(a[j]=='*')j++;
while(a[j])a[i++]=a[j++];
a[i]=0;
}
『伍』 c語言:從數組中刪除數據怎麼做
#include<stdio.h>
#define N 10
void main( )
{
int a[N] , num ,i , *p , n=N;
int j;
/*輸入N個數到數組a中;*/
for(i=0;i<n;i++)
{
scanf(「%d」,&num);
a[i]=num;
}
/*在數組a中刪除指定的數num;*/
for(i=0;i<n;i++)
{
if(a[i] == num)
{
//a[i]=a[n];//如果不保留原數組里的順序,此一句即可代替下邊2行語句,同時省掉變數j
for(j=i;j<n-1;j++)
a[j]=a[j+1];
n--;
}
}
/*輸出刪除了num後的數組a;*/
for(i=0;i<n;i++)
printf("%d ",a[i]);
getchar();
}
『陸』 用C語言如何刪除文件中的數據
1、重建一個臨時文件,把原文件內容向臨時文件里拷貝,遇到要刪除的內容就跳過。結束後關閉文件,用remove("原文件名");把原文件刪除,用rename("臨時文件名","原文件名");把臨時文件名改為原文件名就OK了。
2、比如要按題面要求在原文件123.txt中刪除編號為2和4的信息行,則可用以下代碼實現:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
FILE*fin,*ftp;
chara[1000];
fin=fopen("123.txt","r");//讀打開原文件123.txt
ftp=fopen("tmp.txt","w");//寫打開臨時文件tmp.txt
if(fin==NULL||ftp==NULL){
printf("Openthefilefailure... ");
exit(0);
}
while(fgets(a,1000,fin))//從原文件讀取一行
if(a[0]!='2'&&a[0]!='4')//檢驗是要刪除的行嗎?
fputs(a,ftp);//不是則將這一行寫入臨時文件tmp.txt
fclose(fin);
fclose(ftp);
remove("123.txt");//刪除原文件
rename("tmp.txt","123.txt");//將臨時文件名改為原文件名
return0;
}