『壹』 c語言字元串列印出現特殊字元是怎麼回事請問如何解決這個問題
這是由於代碼頁不同的緣故,要把代碼頁切換到英文格式,才能顯示擴展ASCII碼,否則,編譯系統會把它當作,漢字來顯示,就出現了右圖中的「怪漢字」。但是,這種情況下卻是不能顯示漢字的(在貼出的程序中特意「企圖」顯示一行中文信息,觀察它的顯示情況,然後把system("chcp 437 > nul");一行注釋或刪除後再次編譯、運行比較再次運行的不同結果),所以,在結束程序之前,再換回到原來的顯示漢字狀態(system("chcp 936 > nul");)
#include
#include
int main()
{ char a=176,b=219;
system("chcp 437 > nul");
printf("%c%c%c%c%c
",b,a,a,a,b);
printf("%c%c%c%c%c
",a,b,a,b,a);
printf("%c%c%c%c%c
",a,a,b,a,a);
printf("%c%c%c%c%c
",a,b,a,b,a);
printf("%c%c%c%c%c
",b,a,a,a,b);
printf("
歡迎使用C語言編程!
");
system("pause");
system("chcp 936 > nul");
return 0;
}
『貳』 c語言字元串 列印不出來
你這是整型數組,不能按字元串輸出,%s只能輸出char s[100]這樣的字元數組才可以!
整型數組只能用循環來,逐一的輸出每個元素!
『叄』 一個C語言函數問題,列印不出字元,希望能幫助找到錯誤
#include<stdio.h>
voidfind(charch,intx,inty);
intmain()
{
charch;
inta,b;
printf("inputachar:");
scanf_s("%c",&ch);
printf("inputcolumnandrow:");
scanf_s("%d%d",&a,&b);
find(ch,a,b);
return0;
}
voidfind(charch,intx,inty)
{
inti,j;
for(i=0;i<y;i++)
{
for(j=0;j<x;j++)
{
printf("%c",ch);
}
printf("
");//換行寫在for循環裡面
}
}
『肆』 C語言:怎麼列印二維數組中的字元串呢我嘗試%s,%c打出來的都不是
直接用個二重循環,然後再一個個列印,列印的時候可以用%s。
『伍』 C語言中有時當字元串結尾沒有\n時,字元串無法列印,怎麼解決
加入字元串存在數組a[]裡面,因為沒有'\0'字元,那麼至少數組的長度你知道吧,如果不能加'\0',而又想知道裡面是什麼的話,那就一個for循環,一個字元一個字元地列印吧:
int i=0;
for(i=0; i<length; i++)
printf("%c", a[i]);
如果數組的長度不知道,又沒有'\0'結尾,那麼我敢說,這個數組廢掉了。。
『陸』 c++用printf怎麼不可以列印字元串
庫函數的定義都是在頭文件中,不同的庫函數都需要不同的頭文件,而c++與c語言都有自己的標准庫,c++的標准庫中輸出是cout函數在頭文件iostream,而printf是C語言標准庫中的輸出函數,在頭文件stdio.h中,c++中要用printf需要載入stdio.h,#include<stdio.h>,C語言和c++調用函數必須載入相應的頭文件,否則不能輸出,
『柒』 C語言為什麼列印字元串不會顯示
請把程序的代碼復制上來。這完全看不清啊。
『捌』 c語言顯示不出字元串
您好,很高興回答您的問題。
您的兩個截圖,一個是結果,一個是部分程序,在我們讀者看來是沒有任何問題的,因為結果都顯示出來了。從您的疑問中猜測,估計是學號顯示的內容不正確,那就需要您給出全部的程序,因為前後都是有關聯的,您給出具體的所有程序,才能來分析錯誤的原因哦。
『玖』 c語言字元串列印不出來,求大神解釋一下
退出第一個for循環的時候,
*a為0,於是*c第一個就賦值成了結束符,導致c是空串.
改成:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void aaa(char *a,char *c,int i);
int main()
{
char a[20];
char c[20];
printf("please input a:\n");
gets(a);
int i = strlen(a);
aaa(a,c,i);
printf("%s\n",c);
return 0;
}
void aaa(char *a,char *c,int i)
{
for (;*a != '\0';)
{
a++;
}
a--;//前移一位
for (;strlen(a) <= i;)
{
*c = *a;
c++;
a--;
}
*c = '\0';
}
不過
實際上這樣做在最後一位賦值的時候a有一個越界操作.
改成
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void aaa(char *a,char *c,int i);
int main()
{
char a[20];
char c[20];
printf("please input a:\n");
gets(a);
int i = strlen(a);
aaa(a,c,i);
printf("%s\n",c);
return 0;
}
void aaa(char *a,char *c,int i)
{
for (;*a != '\0';)
{
a++;
}
a--;
for (;i; i--)
{
*c = *a;
c++;
a--;
}
*c = '\0';
}
會更嚴謹.