【发布时间】:2017-02-22 08:14:11
【问题描述】:
我需要编写一个程序,让用户输入一个字符串,然后继续检查具有islower、isupper、isdigit 的单个字符,但在字符串的第一个循环中它总是崩溃并在第二回合后一次给printfs。
有人可以帮忙吗?
#include <stdio.h>
#include <string.h>
#ifndef MAIN_H_
#include "main.h"
#endif
int main()
{
char cString[MAX]; //alle Felder auf NULL gesetzt für spätere Überprüfung ob Entertaste gedrückt wurde
char cUebergabe[MAX];
int iLauf=0;
int iNULL=0;
while(iLauf<MAX)
{
cString[iLauf]=iNULL;
iLauf++;
}
iLauf=0;
printf("geben sie maximal 20 Zahlen zur auswertung des String ein, bei der Eingabe von Enter ohne ein Symbol wird das Einlesen abgebrochen\n");
while(iLauf<MAX)
{
printf("Geben Sie nun das %d . Zeichen ein\n",iLauf+1);
scanf("%c",&cString[iLauf]);
iLauf++;
if(cString[iLauf-1]==iNULL)
{
iLauf=MAX;
}
else
;
}
strcpy(cUebergabe,cString);
VerarbeitungAusgabe(cUebergabe, iNULL);
return 0;
}
【问题讨论】:
-
因为我们都有具有魔力的玻璃球,可以读取您未提供给我们的代码。编辑您的问题并添加您的代码。
-
对不起,不知不觉就发了
-
#ifndef MAIN_H_ -
cString似乎永远不会被终止,顺便说一句。如果那个 while 循环没有让你得到你,你就是在那个strcpy(cUebergabe,cString)上掷骰子,直到你真正从那个循环中中断时才会发生这种情况。您通过什么方式将一个空八位字节滑入您的输入流? -
在调试器中运行您的程序,以便您可以单步执行它并查看变量包含的内容。