- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开展一个项目,需要一些帮助。我在作业中被告知以下内容:
The Language of Tut
The tut language is a simple encoded language where words are spelled out and the letters "ut" are placed after every consonant, vowels are left as they are. So the word "Hello", in tut become "Hutelutluto" The word "Goodbye" becomes "Gutoodutbutyute". The sentence "How are you today?", becomes "Hutowut arute yutou tutodutayut?".
The Programs
For this lab you will need to write two (2) C programs. The first should be be able to accept an English sentence from the user and convert it into Tut and the second program should accept a Tut sentence from the user and convert it to English. Both the original and converted sentences should be displayed for the user in both programs.
Functions and Header Files
Find at least one reason to create a function that can be used in both of the two programs. The function should have high functional integrity and be loosely coupled. The function should be kept in a header file that will be included into each of the two programs.
You should submit two C source code files and 1 header file for this assignment. Everything that's needed for the programs to compile must be included.
我现在不关心这个功能。只是试图用数组完成主要任务。
这是我到目前为止所拥有的。
/*
EnglishToTut
*/
#include <stdio.h>
int input_check (char [], char [], int);
int main ( void ) {
const max_str_len = 50;
int c, i;
char eng_str[max_str_len];
char vowel[] = {'a','e','i','o','u','A','E','I','O','U'};
char consonant[] = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'y', 'z', '\0'};
printf("Welcome to the program Tut.\n");
printf("Please enter a string to convert to Tut: ");
scanf(" %s", eng_str);
for ( c = 0; c < max_str_len; c++) {
if (eng_str[c] == consonant[c]) {
printf("%sut", eng_str);
}
}
// while ( input_check(consonant, eng_str, max_str_len) != 1 ) { //write a loop with an if statement that uses function to check for consanants and then append ut.
// if( input_check(consonant, eng_str, max_str_len) == 1 ) {
// printf("%s\n", eng_str);
// } else if ( input_check(consonant, eng_str, max_str_len) == 0 ) {
// printf("%s\n", eng_str);
// }
// }
请忽略注释代码。但我的问题是为什么程序只将 ut 附加到字符串的第一个字符而不是每个辅音?
最佳答案
您的问题是您正在循环索引到具有相同索引的第一个和第二个数组。尽管您正在循环遍历字符列表并在特定条件语句下将“ut”附加到字符,但仅当两个数组索引处的字符相同时才执行此函数。在 if 语句周围添加一个辅助循环,并使用此循环来索引辅音数组。为了使您的程序更加简洁,删除辅音数组并仅检查该字符是否不是元音可能会更容易。试试这个...
#include <stdio.h>
int inArr(char character, char *letters, int size) {//retuns the number of times a character appears in an array
int counter=0;
for(int i=0; i<size; i++) {
if(character==letters[i]) {
counter++;
}
}
return counter;
}
int main () {
int maxLen = 50;
char eng_str[maxLen];
char vowels[] = {'a','e','i','o','u','A','E','I','O','U', ' ', 0};//array of characters withought "ut" appended
printf("Welcome to the program Tut.\n");
printf("Please enter a string to convert to Tut: ");
int i=0;//gets string and saves to eng_str
while((eng_str[i] = getchar())!='\n') {
i++ ;
if(i>=maxLen) {
printf("\nSTRING TOO LONG\n");
return 1;
}
}
int a=0;//stores the length of the typed message as a
while(eng_str[a] != '\n') {
a++;
}
for(int i=0; i<a; i++) {//loop through entered string
if(inArr(eng_str[i], vowels, (sizeof(vowels)/sizeof(vowels[0])))==0) {//if character at index i is not in vowels append ut
printf("%cut", eng_str[i]);
}else {//else print just the character
printf("%c", eng_str[i]);
}
}
printf("\n");
}
我使用了 getchar()
而不是 scanf()
,因为很难根据 scanf()< 的输入来更改数组的长度
并使用 getchar()
您可以告诉它搜索 '/n'
字符。 scanf()
还将字符串截断为字符串中的第一个空格。
您还可以尝试将字符动态分配给字符数组,但如果您声明 char *eng_str
然后尝试将字符传递给它,程序会抛出段错误。
关于c - 如何在数组中查找辅音并在c中在它们后面附加ut,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36961404/
我关注了 tutorial on creating a popup for an add-on在 Firefox 中,效果很好。 我现在遇到的问题是它创建的弹出窗口不会更改大小以适应我添加到其中的内容
我有一些视频,我需要连接一个标题并添加一些覆盖,问题是我需要先做覆盖,否则时间不正确,然后才将标题连接到视频的开头 ffmpeg -i talk.mp4 -i start_pancarte.png
我正在尝试附加一个 CSV 文件。这是我正在使用的线路。不幸的是,我找不到 export-csv 的附加选项。任何想法都有助于使其发挥作用。 Get-ADGroupMember "Domain Adm
我正在努力理解 Attach API (com.sun.tools.attach.*) 的用途。它的典型用途是什么?它是为了“模拟”JVM,以便您可以在不部署/启动代码的情况下测试您的代码吗?它是一个
我不明白为什么这不起作用。 soup_main = BeautifulSoup('FooBar') soup_append = BeautifulSoup('Meh') soup_main.body.
我有以下代码来返回我想要的字符串 $sql = " SELECT `description` FROM `auctions` WHERE `description` REGEX
我正在尝试从数组中附加具有多个值的元素,但我做错了。这是我的代码: for(var i=0; i ` + pricesArray[i].start_date ` ` + pricesArray[i
我正在尝试将图像链接添加到此 javascript 附加表中。使图像位于按钮上方 这是代码 $("#1").append(""+section+""+no+""+price+""+button+""
我有一个问题,我已经解决了,但它太烦人了。 我有一个 js 代码,当使用“追加”按下按钮时,它会放下一些 html 代码,并且通过该代码,我为 x 按钮提供了一个 id,并为容器元素提供了一个 id。
我想逐行读取文件,并且每一行可能都有很多字符。 这个版本的readline效果很好 func readLine(r *bufio.Reader) ([]byte, error) { var (
我有一个网站,每次用户登录或注销时,我都会将其保存到文本文件中。 如果不存在,我的代码在附加数据或创建文本文件时不起作用。这是示例代码 $myfile = fopen("logs.txt", "wr"
我正在尝试使用 typescript 和 Formik 创建一个自定义输入字段。我可以就完成以下代码的最佳方式获得一些帮助吗?我需要添加额外的 Prop 标签和名称......我已经坚持了一段时间,希
我有一个字符串 big_html,我想将它添加到某个 div 中。我观察到以下方面的性能差异: $('#some-div').append( big_html ); // takes about 10
如何使用 FormData 创建以下结果 ------WebKitFormBoundaryOmz20xyMCkE27rN7 Content-Disposition: form-data; name="
有没有办法附加 jQuery 事件处理程序,以便在任何先前附加的事件处理程序之前触发该处理程序?我遇到了this article ,但代码不起作用,因为事件处理程序不再存储在数组中,而这正是他的代码所
我正在开发一个需要网络登录的 iPhone 应用程序。像往常一样我打电话 [[UIApplication sharedApplication] openURL:loginURL]; 这将关闭应用程序并
我想开发一个仅针对特定域激活的扩展。 我不希望它在不浏览此特定域时出现在浏览器菜单中。 有可能这样做吗? 最佳答案 可能:对于菜单,您可以添加一个弹出窗口侦听器,用于检查当前加载的URL(docs f
这段 JavaScript 代码 function writeCookie(CookieName, CookieValue, CookieDuration) { var expiration
我正在使用 Handlebars 来渲染使用ajax从本地服务器获得的信息。我的 HTML 看起来像: {{#each Tabs}}
我尝试了以下代码,但当输入框中没有数据时它不会通知。当我直接添加此内容(不附加)时,它会起作用。我在这里做错了什么 var output = "\n"+ "\n"+
我是一名优秀的程序员,十分优秀!